簡體   English   中英

如何使用cv2.waitKey()等待兩個不同的鍵

[英]How to wait for two different keys using cv2.waitKey()

我想實現一個功能,當cv2顯示一些視頻時,它可以等待兩個不同的按鍵輸入並以不同的方式響應它們。

我正在使用以下代碼來等待特定的鍵:

if cv2.waitKey(1) & 0xFF == ord('q'):
    break

假設我想使用第二個鍵“ w”並以不同的方式響應該鍵,我的第一次嘗試是:

if cv2.waitKey(1) & 0xFF == ord('q'):
    break
elif cv2.waitKey(1) & 0xFF == ord('w'):
    print('w is pressed')

但是效果不是很好,我必須按住w一段時間,直到程序響應為止。

有什么建議怎么做?

非常感謝。

嘗試:

k = cv2.waitKey(1) & 0xFF

if k == ord('q'):
    break

elif k == ord('w'):
    print('w is pressed')

問題是,waitKey方法被多次調用。 您應該改用變量來存儲結果並多次檢查:

pressedKey = cv2.waitKey(1) & 0xFF
if pressedKey == ord('q'):
    break
elif pressedKey == ord('w'):
    print('w is pressed')

等待的原因是,兩個函數調用均讀取鍵盤緩沖區,因此僅當在第一個分支的撤換之后軟件立即接收到w鍵時,第二個分支才會執行。

暫無
暫無

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

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