opencv鎖定鼠標定位的實現(xiàn)
控制鼠標
opencv允許我們對窗口的鼠標動作做出響應(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個參數(shù):
1.event:事件(鼠標拖動,左鍵,右鍵等)
2.x,y:點擊鼠標的坐標點
3.flags:主要用于組合鍵
4.userdata:上面的setMouseCallback的userdata
鼠標事件:
- EVENT_MOUSEMOVE 0 鼠標移動
- EVENT_LBUTTONDOWN 1 按下鼠標左鍵
- EVENT_RBUTTONDOWN 2 按下鼠標右鍵
- EVENT_MBUTTONDOWN 3 按下鼠標中鍵
- EVENT_LBUTTONUP 4 左鍵釋放
- EVENT_RBUTTONUP 5 右鍵釋放
- EVENT_MBUTTONUP 6 中鍵釋放
- EVENT_LBUTTONDBLCLK 7 左鍵雙擊
- EVENT_RBUTTONDBLCLK 8 右鍵雙擊
- EVENT_MBUTTONDBLCLK 9 中鍵雙擊
- EVENT_MOUSEWHEEL 10 鼠標滾輪上下滾動
- EVENT_MOUSEHWHEEL 11 鼠標左右滾動
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ù)的五個參數(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è)置鼠標回調(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()
效果展示
當鼠標出現(xiàn)在窗口中時,即開始跟蹤鼠標的位置,并完成位置的實時打印!
完整學(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è)置鼠標回調(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鎖定鼠標定位的實現(xiàn)的文章就介紹到這了,更多相關(guān)opencv鎖定鼠標定位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(九):數(shù)據(jù)庫客戶端 DB-API
這篇文章主要介紹了python 數(shù)據(jù)庫客戶端 DB-API的相關(guān)資料,需要的朋友可以參考下2014-06-06