【学习OpenCV4】键盘鼠标操作总结
本文分享內容來自圖書《學習OpenCV 4:基于Python的算法實戰》,該書內容如下:
第1章 OpenCV快速入門; 第2章 圖像讀寫模塊imgcodecs; 第3章 核心庫模塊core; 第4章 圖像處理模塊imgproc(一); 第5章 圖像處理模塊imgproc(二); 第6章 可視化模塊highgui; 第7章 視頻處理模塊videoio; 第8章 視頻分析模塊video; 第9章 照片處理模塊photo; 第10章 2D特征模塊features2d; 第11章 相機標定與三維重建模塊calib3d; 第12章 傳統目標檢測模塊objdetect; 第13章 機器學習模塊ml; 第14章 深度神經網絡模塊dnn歡迎關注圖書**《深度學習計算機視覺實戰》與《學習OpenCV4:基于Python的算法實戰》**。
案例79:鍵盤操作
OpenCV中提供了鍵盤操作的函數waitKey,函數定義如下:
retval = waitKey(delay=None)參數說明如下:
?delay,延遲等待的時間,單位為毫秒,設置為時則無限期等待直到鍵盤操作;
?retval,返回操作的按鍵(返回值)。
函數waitKey無限期地(當參數為0時)等待一個按鍵事件,或者等待延遲毫秒(當參數為正時)。由于操作系統在切換線程之間有一個最短的時間間隔,因此函數不會完全等待delay毫秒,它至少會等待delay毫秒,這取決于此時計算機上運行的其他內容。它返回被按下的按鍵的編碼,如果在指定的時間過去之前沒有按下任何鍵,則返回-1。
函數waitKey函數是highgui模塊中唯一可以獲取和處理事件的方法,因此需要定期調用它以進行正常地進行事件處理,除非在處理事件的環境中已經使用了highgui。僅當至少創建了一個highgui窗口且該窗口處于活動狀態時,該函數才起作用。如果有幾個highgui窗口,其中任何一個都可以處于活動狀態。
圖像顯示函數imshow后必須跟有waitKey函數,否則圖像無法正常顯示。
waitKey使用的案例代碼如下:
按下按鍵G,顯示窗口關閉,按鍵按下打印信息如下:
Press key is: 103案例80:鼠標操作
OpenCV中設置鼠標回調的函數為setMouseCallback,函數定義如下:
setMouseCallback(windowName, onMouse, param=None)參數說明如下:
?windowName,窗口名;
?onMouse,鼠標事件回調函數;
?param,參數。
setMouseCallback函數的返回值為None。
OpenCV中的鼠標事件可以通過如下的代碼查詢:
鼠標事件打印結果如下:
['EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON', 'EVENT_FLAG_MBUTTON', 'EVENT_FLAG_RBUTTON', 'EVENT_FLAG_SHIFTKEY', 'EVENT_LBUTTONDBLCLK', 'EVENT_LBUTTONDOWN', 'EVENT_LBUTTONUP', 'EVENT_MBUTTONDBLCLK', 'EVENT_MBUTTONDOWN', 'EVENT_MBUTTONUP', 'EVENT_MOUSEHWHEEL', 'EVENT_MOUSEMOVE', 'EVENT_MOUSEWHEEL', 'EVENT_RBUTTONDBLCLK', 'EVENT_RBUTTONDOWN', 'EVENT_RBUTTONUP']見6.1節,鼠標事件類型由MouseEventTypes定義,鼠標事件標志由MouseEventFlags定義。
本節案例是通過不同的鼠標操作進行圖形繪制,鼠標左鍵雙擊可以繪制圓,鼠標左鍵按下拖動繪制紅色線,鼠標右鍵按下拖動繪制藍色線,案例代碼如下:
鼠標繪制結果如圖6.5所示。
圖6.5
總結
以上是生活随笔為你收集整理的【学习OpenCV4】键盘鼠标操作总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps如何将字体竖着排列_如何在短时间内
- 下一篇: LuckyDraw app使用Cosmo