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

yipeiwu_com6年前Python基础

如下所示:

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用线段画封闭矩形的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python从子线程中获得返回值的方法

如下所示: # coding:utf-8 import time from threading import Thread def foo(number): time.s...

浅谈插入排序算法在Python程序中的实现及简单改进

Python实现插入排序的一般范例为: #coding=cp936 #coding=cp936 #插入排序算法 def InsertionSort(A): for j in r...

Python环境变量设置方法

Python环境变量设置方法

Alias Maya中的脚本语言是Mel 和 Python,据说Houdini未来也会把Python作为主要的脚本语言,作为影视特效师,掌握Python语言是必备技能;虽然Maya内置了...

Win10环境python3.7安装dlib模块趟过的坑

Win10环境python3.7安装dlib模块趟过的坑

在头条看了一篇文章,说五行代码实现人脸识别,一时感兴趣了,来搞搞 先是按照文章说的 操作了几步,到后面虽然,import dlib 不报错,但是 代码里面运行的时候 detector...

Python实现的从右到左字符串替换方法示例

本文实例讲述了Python实现的从右到左字符串替换方法。分享给大家供大家参考,具体如下: 一 . 前言 需要用到,但是发现python没有从右边开始替换的内置方法,默认的replace只...