python_opencv用线段画封闭矩形的实例

如下所示:

def draw_circle(event,x,y,flags,param):
  global ix,iy,drawing,mode,start_x,start_y

  if event == cv2.EVENT_LBUTTONDOWN:
    if drawing == False:
      start_x, start_y = x,y
      ix,iy = x,y
      drawing = True
    elif drawing == True:
      cv2.line(img,(ix,iy),(x,y),(0,255,0),3)
      ix, iy = x, y
    print(drawing)
  elif event == cv2.EVENT_MBUTTONDOWN:
    drawing = False

    cv2.line(img, (ix, iy), (start_x, start_y), (0, 255, 0), 3)
    print(drawing)

  #
  # elif event == cv2.EVENT_RBUTTONUP:
  #   cv2.line(img,(ix,iy),(x,y),(0,255,0),3)
# Next we have to bind this mouse callback function to OpenCV # # window. In the main loop, we should set a keyboard binding for
# key ‘m' to toggle between rectangle and circle.
img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow('image')
cv2.setMouseCallback('image',draw_circle)

while(1):
  cv2.imshow('image',img)
  k = cv2.waitKey(1) & 0xFF
  if k == ord('m'): # 切换模式
    mode = not mode
  elif k == 27:
    break

cv2.destroyAllWindows()

以上这篇python_opencv用线段画封闭矩形的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python opencv minAreaRect 生成最小外接矩形的方法

    使用python opencv返回点集cnt的最小外接矩形,所用函数为 cv2.minAreaRect(cnt) ,cnt是点集数组或向量(里面存放的是点的坐标),并且这个点集不定个数. 举例说明:画一个任意四边形(任意多边形都可以)的最小外接矩形,那么点集 cnt 存放的就是该四边形的4个顶点坐标(点集里面有4个点) cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) # 必须是array数组的形式 rect = cv2.minAreaRect(

  • Python+opencv 实现图片文字的分割的方法示例

    实现步骤: 1.通过水平投影对图形进行水平分割,获取每一行的图像: 2.通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符: 先简单介绍一下投影法:分别在水平和垂直方向对预处理(二值化)的图像某一种像素进行统计,对于二值化图像非黑即白,我们通过对其中的白点或者黑点进行统计,根据统计结果就可以判断出每一行的上下边界以及每一列的左右边界,从而实现分割的目的. 下面通过Python+opencv来实现该功能 首先来实现水平投影: import cv2 impor

  • python下的opencv画矩形和文字注释的实现方法

    画矩形 函数调用:cv2.rectangle(img,pt1,pt2,color,thickness,line_type,shift) img: 图像. pt1: 矩形的一个顶点. pt2: 矩形对角线上的另一个顶点 color: 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image). thickness: 组成矩形的线条的粗细程度.取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形. line_type: 线条的类型.见cvLine的描述 shift: 坐标点的

  • python_opencv用线段画封闭矩形的实例

    如下所示: def draw_circle(event,x,y,flags,param): global ix,iy,drawing,mode,start_x,start_y if event == cv2.EVENT_LBUTTONDOWN: if drawing == False: start_x, start_y = x,y ix,iy = x,y drawing = True elif drawing == True: cv2.line(img,(ix,iy),(x,y),(0,255,

  • Python使用matplotlib实现在坐标系中画一个矩形的方法

    本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法.分享给大家供大家参考.具体实现方法如下: import matplotlib.pyplot as plt from matplotlib.patches import Rectangle class Annotate(object): def __init__(self): self.ax = plt.gca() self.rect = Rectangle((0,0), 1, 1) self.x0 = None s

  • PHP二维数组矩形转置实例

    PHP二维数组矩形转置实例 <?php //二维数组转置 //定义一个二维数组 $arr =array(array(1,2,3),array(4,5,6)); //定义一个数组来放置转置的数据 $arr1=array(); //转置前遍历 echo "转置前:<br/>"; for($i=0;$i<count($arr);$i++){ for($j=0;$j<count($arr[$i]);$j++){ echo $arr[$i][$j]; } echo

  • Android 快速绘制一个圆角矩形的实例

    android 开发过程中,经常需要绘制一些简单的颜色图形.下面贴上一段最简单的图形. 圆角矩形: res\drawable\shape_small_label.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 内部颜色 --> &l

  • 在python中画正态分布图像的实例

    1.正态分布简介 正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution),是一个非常重要也非常常见的连续概率分布.正态分布大家也都非常熟悉,下面做一些简单的介绍. 假设随机变量XX服从一个位置参数为μμ.尺度参数为σσ的正态分布,则可以记为: 而概率密度函数为 2.在python中画正态分布直方图 先直接上代码 import numpy as np import matplotlib.mlab as mlab import matplot

  • python 图像处理画一个正弦函数代码实例

    这篇文章主要介绍了python 图像处理画一个正弦函数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import numpy as np from PIL import Image import matplotlib.pyplot as plt import math size = 300 new_im = Image.new("RGBA",(size,size)) #创建一个空的图片 a_img = np.array(ne

  • python画蝴蝶曲线图的实例

    蝴蝶曲线是由Temple H·Fay发现的可用极坐标函数表示的蝴蝶曲线. 由于此曲线优美, 因此就想把它作为博客favicon.ico,这里我使用pytho matplotlib.pyplot包来绘制需要的蝴蝶曲线图. 先看下漂亮的蝴蝶曲线吧. 1.首先我们需要确定蝴蝶曲线的函数表达 2.选择python里面的matplotlib.pyplot作为画图工具 1.首先导入python包 import numpy as np import matplotlib.pyplot as plt 2.设置个

  • python计算二维矩形IOU实例

    计算交并比:交的面积除以并的面积. 要求矩形框的长和宽应该平行于图片框.不然不能用这样的公式计算. 原理,从一维上来理解:两条红线的距离之和减去黑色线之间的距离就是相交的距离.两条红线之和很容易算,两条黑线之间的距离就是最小的起点到到最大的末点,最小的起点好算,最大的末点就是两点加上各自长度之后的最大值.这就算出了一维的情况,二维的情况一样,计算二次而已. def iou(rect1,rect2): ''' 计算两个矩形的交并比 :param rect1:第一个矩形框.表示为x,y,w,h,其中

  • Jupyter打开图形界面并画出正弦函数图像实例

    1.进入工作目录文件夹D:\Python\jupyterWorkplace 如何截取鼠标右键的选项栏: qq截图的拓展,在登陆qq的前提下同时按住ctrl+alt+shift, 然后选择右键菜单(或者下拉菜单)也可以哦! 这个时候松开shift ,ctrl+alt上的两个手指不要松开, 同时用另外一个手指按住A即可 2.键盘Shift+鼠标右键->在此处打开命令窗口-> 在弹出的命令窗口中输入:Jupyter Notebook 进入shell: 3.浏览器会自动打开一个页面,new里面选择Py

  • python opencv 画外接矩形框的完整代码

    画外接矩形框,可以画成一个最大的,也可以分别画. # -*- coding: utf-8 -*- import cv2 image = cv2.imread('G:/110w2/mask_tif4/00.png') print(image.shape) print(image.shape[0]) # h print(image.shape[1]) # w # 图像转灰度图 img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) #cv2.imwrite('G:

随机推荐