欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python知识:openCV实现鼠标事件捕获

时间:2023-08-20

以下,用opencv实现简单画板程序,来说明鼠标事件捕获:

1 函数说明:

1)函数cv2.setMouseCallback('image',MyCallBack)

指定对“image”窗口绑定事件处理的回调程序是MyCallBack;

2)MyCallBack回调程序的格式是

def MyCallBack(event,x,y,flags,param):

event:是输入事件号

x,y:是鼠标所在位置。

param:是带入参数,一般是个结构的指针,或句柄。

2 程序代码

# -*- coding: utf-8 -*-import cv2import numpy as np #mouse callback functionstate = Falsedef MyCallBack(event,x,y,flags,param): global state if event == cv2.EVENT_LBUTTONDOWN: state = True elif event == cv2.EVENT_LBUTTONUP: state = False if event == cv2.EVENT_MOUSEMOVE: if state == True: cv2.circle(img,(x,y),2,(255,126,0),-1)def clear(): global img img[:,:,-1] = 0#创建图像与窗口并将窗口与回调函数绑定img=np.zeros((740,1400,3),np.uint8)cv2.namedWindow('image')cv2.setMouseCallback('image',MyCallBack)while(1): cv2.imshow('image',img) k = cv2.waitKey(1) & 0xFF if k == 32: img[:] = 0 elif k == 27: breakcv2.destroyAllWindows()

3 结果

可以实现绘图程序。

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。