Python OpenCV实现鼠标绘制封闭矩形的方法
本文介绍利用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通过线段绘制封闭矩形的完整示例,供读者参考与实践。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









