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