标签:鼠标 img python image cv2 openCV state event MyCallBack
以下,用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 cv2
import numpy as np
#mouse callback function
state = False
def 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:
break
cv2.destroyAllWindows()
3 结果
可以实现绘图程序。
标签:鼠标,img,python,image,cv2,openCV,state,event,MyCallBack 来源: https://blog.csdn.net/gongdiwudu/article/details/122759068
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。