opencv3/python 鼠标响应操作详解
鼠标回调函数:
defsetMouseCallback( windowName,#窗口名称 onMouse,#鼠标响应处理函数 param=None)#处理函数的ID
event鼠标事件:
event: EVENT_LBUTTONDBLCLK=7左键双击 EVENT_LBUTTONDOWN=1左键点击 EVENT_LBUTTONUP=4左键释放 EVENT_MBUTTONDBLCLK=9中间释放 EVENT_MBUTTONDOWN=3中间点击 EVENT_MBUTTONUP=6中间释放 EVENT_MOUSEHWHEEL=11滚轮事件 EVENT_MOUSEMOVE=0滑动 EVENT_MOUSEWHEEL=10滚轮事件 EVENT_RBUTTONDBLCLK=8右键双击 EVENT_RBUTTONDOWN=2右键点击 EVENT_RBUTTONUP=5右键释放 flags: EVENT_FLAG_ALTKEY=32按Alt不放事件 EVENT_FLAG_CTRLKEY=8按Ctrl不放事件 EVENT_FLAG_LBUTTON=1左键拖拽 EVENT_FLAG_MBUTTON=4中键拖拽 EVENT_FLAG_RBUTTON=2右键拖拽 EVENT_FLAG_SHIFTKEY=16按Shift不放事件
示例
在图像上用鼠标点击左键拖拽画一矩形,并输出矩形信息:
importcv2
defdraw_rectangle(event,x,y,flags,param):
globalix,iy
ifevent==cv2.EVENT_LBUTTONDOWN:
ix,iy=x,y
print("point1:=",x,y)
elifevent==cv2.EVENT_LBUTTONUP:
print("point2:=",x,y)
print("width=",x-ix)
print("height=",y-iy)
cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),2)
img=cv2.imread("max.png")#加载图片
cv2.namedWindow('image')
cv2.setMouseCallback('image',draw_rectangle)
while(1):
cv2.imshow('image',img)
ifcv2.waitKey(20)&0xFF==27:
break
cv2.destroyAllWindows()
输出:
point1:=25464 point2:=708569 width=454 height=505
以上这篇opencv3/python鼠标响应操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。