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環境下,這個函式不起作用。

相關詞條

熱門詞條

聯絡我們