簡體   English   中英

OpenCv將cv :: waitKey限制為只等待一個特定的密鑰?

[英]OpenCv Restrict cv::waitKey to only one wait for one specific key?

有沒有辦法限制cv :: WaitKey()只等待一鍵按下? 即esc按鈕? 我希望能夠按下此目標鍵以外的任何鍵,並使窗口保持打開狀態。

我只是偶然發現了這個問題,我很確定會有更多的人在尋找相同的答案。 實際上有一種非常簡單的方法可以做到這一點。 cv :: waitKey()返回一個與按下的鍵的鍵碼對應的整數。 通過將waitKey調用放在一個循環中,該循環將返回值與您正在查找的鍵代碼進行比較,您可以等待特定的鍵。

這里有一個相當大的陷阱:在某些平台上,最重要的位在返回值中設置,這意味着如果只是將它們與普通鍵碼進行比較,循環將永遠不會中斷。 通過使用按位AND來解決這個問題,除了最重要的一點,如下所示:

while((cv::waitKey() & 0xEFFFFF) != 27); //27 is the keycode for ESC

你可以這樣做:

// Loop until escape is pressed
while (cvWaitKey(1) != '\33') {

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM