cvWaitKey

OpenCV中的一個函式

函式原型為:

C++: int waitKey(int delay=0)

Python: cv2.waitKey([delay]) → retval

C: int cvWaitKey(int delay=0 )

Python: cv.WaitKey(delay=0) → int

函式功能:

cvWaitKey()函式的功能是不斷刷新圖像,頻率時間為delay,單位為ms。

返回值為當前鍵盤按鍵值。

所以顯示圖像時,如果需要在cvShowImage("xxxx.bmp",image)後加上while(cvWaitKey(n)==key)為大於等於0的數即可,那么程式將會停在顯示函式處,不運行其他代碼;直到鍵盤值為key的回響之後。

delay>0時,延遲"delay"ms,在顯示視頻時這個函式是有用的,用於設定在顯示完一幀圖像後程式等待"delay"ms再顯示下一幀視頻;如果使用cvWaitKey(0)則只會顯示第一幀視頻。

當delay<=0的時,如果沒有鍵盤觸發,則一直等待,否則返回值為鍵盤按下的碼字;

返回值:返回值為int型,函式的參數為int型.如果delay>0,那么超過指定時間則返回-1;如果delay<=0時,函式cvWaitKey無限制的等待按鍵事件,所以顯示圖像時,需要在cvShowImage("**.bmp",image)後加上cvWaitKey(n)——n為小於等於0的數即可,程式停在顯示函式處,不運行其他代碼;否則,圖像無法正常顯示。如果程式想回響某個按鍵,可利用if(cvWaitKey(1)==Keyvalue);

經常程式裡面出現if( cvWaitKey(10) >= 0 ) 。首先cvWaitKey(10)代表在當前狀態下等待十毫秒,整句的意思就是如果在十毫秒內按下任意鍵就進入if子句中。舉個例子:如果出現在攝像頭調用中,10就代表攝像頭畫面刷新間隔,按下任意鍵則可以進入if子句(一般是用break跳出循環,結束調用)。

注意:這個函式是HighGUI中唯一能夠獲取和操作事件的函式,所以在一般的事件處理中,它需要周期地被調用,除非HighGUI被用在某些能夠處理事件的環境中。比如在MFC環境下,這個函式不起作用。

相關詞條

熱門詞條

聯絡我們