[英]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.