opencv鎖定鼠標(biāo)定位的實(shí)現(xiàn)
控制鼠標(biāo)
opencv允許我們對窗口的鼠標(biāo)動(dòng)作做出響應(yīng):
setMouseCallback(winname,callback,userdata)
1.winname是窗口的名字
2.callback是回調(diào)函數(shù)
3.userdata是給回調(diào)函數(shù)的參數(shù)
callback(event,x,y,flags,userdata)回調(diào)函數(shù)必須包含這5個(gè)參數(shù):
1.event:事件(鼠標(biāo)拖動(dòng),左鍵,右鍵等)
2.x,y:點(diǎn)擊鼠標(biāo)的坐標(biāo)點(diǎn)
3.flags:主要用于組合鍵
4.userdata:上面的setMouseCallback的userdata
鼠標(biāo)事件:
- EVENT_MOUSEMOVE 0 鼠標(biāo)移動(dòng)
- EVENT_LBUTTONDOWN 1 按下鼠標(biāo)左鍵
- EVENT_RBUTTONDOWN 2 按下鼠標(biāo)右鍵
- EVENT_MBUTTONDOWN 3 按下鼠標(biāo)中鍵
- EVENT_LBUTTONUP 4 左鍵釋放
- EVENT_RBUTTONUP 5 右鍵釋放
- EVENT_MBUTTONUP 6 中鍵釋放
- EVENT_LBUTTONDBLCLK 7 左鍵雙擊
- EVENT_RBUTTONDBLCLK 8 右鍵雙擊
- EVENT_MBUTTONDBLCLK 9 中鍵雙擊
- EVENT_MOUSEWHEEL 10 鼠標(biāo)滾輪上下滾動(dòng)
- EVENT_MOUSEHWHEEL 11 鼠標(biāo)左右滾動(dòng)
flags:
- EVENT_FLAG_LBUTTON 1 按下左鍵
- EVENT_FLAG_RBUTTON 2 按下右鍵
- EVENT_FLAG_MBUTTON 4 按下右鍵
- EVENT_FLAG_CRTLKEY 8 按下ctrl鍵
- EVENT_FLAG_SHIFTKEY 16 按下shift鍵
- EVENT_FLAG_ALTKEY 32 按下alt鍵
導(dǎo)入相應(yīng)的庫
import cv2 import numpy as np
創(chuàng)建方法
創(chuàng)建并輸出回調(diào)函數(shù)的五個(gè)參數(shù)
def mouse_callback(event,x,y,flags,userdata): print(event,x,y,flags,userdata)
創(chuàng)建窗口
cv2.namedWindow('mouse',cv2.WINDOW_NORMAL) cv2.resizeWindow('mouse',640,360)
設(shè)置鼠標(biāo)回調(diào)函數(shù)
cv2.setMouseCallback('mouse',mouse_callback,'123')
設(shè)置生成的窗口背景
img = np.zeros((360,640,3),np.uint8)
綁定鍵盤監(jiān)聽事件
while True: cv2.imshow('mouse',img) key = cv2.waitKey(1) if key & 0XFF == ord('q'): break
釋放窗口
cv2.destroyAllWindows()
效果展示
當(dāng)鼠標(biāo)出現(xiàn)在窗口中時(shí),即開始跟蹤鼠標(biāo)的位置,并完成位置的實(shí)時(shí)打??!
完整學(xué)習(xí)代碼
import cv2 import numpy as np def mouse_callback(event,x,y,flags,userdata): print(event,x,y,flags,userdata) cv2.namedWindow('mouse',cv2.WINDOW_NORMAL) cv2.resizeWindow('mouse',640,360) #設(shè)置鼠標(biāo)回調(diào)函數(shù) cv2.setMouseCallback('mouse',mouse_callback,'123') #顯示窗口和背景 #生成全黑的圖片 img = np.zeros((360,640,3),np.uint8) while True: cv2.imshow('mouse',img) key = cv2.waitKey(1) if key & 0XFF == ord('q'): break cv2.destroyAllWindows()
到此這篇關(guān)于opencv鎖定鼠標(biāo)定位的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)opencv鎖定鼠標(biāo)定位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python3.6+opencv3.4實(shí)現(xiàn)鼠標(biāo)交互查看圖片像素
- python opencv鼠標(biāo)畫矩形框之cv2.rectangle()函數(shù)
- Python OpenCV實(shí)現(xiàn)鼠標(biāo)畫框效果
- opencv+python實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊圖像,輸出該點(diǎn)的RGB和HSV值
- OpenCV實(shí)現(xiàn)鼠標(biāo)框選并顯示框選區(qū)域
- opencv3/python 鼠標(biāo)響應(yīng)操作詳解
- OpenCV鼠標(biāo)繪制矩形和截取矩形區(qū)域圖像
- OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo)
- Opencv使用鼠標(biāo)任意形狀的摳圖
相關(guān)文章
python爬取網(wǎng)易云音樂排行榜實(shí)例代碼
大家好,本篇文章主要講的是python爬取網(wǎng)易云音樂排行榜數(shù)據(jù)代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12Python進(jìn)程的通信Queue、Pipe實(shí)例分析
這篇文章主要介紹了Python進(jìn)程的通信Queue、Pipe,結(jié)合實(shí)例形式分析了Python進(jìn)程通信Queue、Pipe基本概念、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(九):數(shù)據(jù)庫客戶端 DB-API
這篇文章主要介紹了python 數(shù)據(jù)庫客戶端 DB-API的相關(guān)資料,需要的朋友可以參考下2014-06-06