Wen*_* Xu 3 python opencv python-3.x
我想实现一个功能,当 cv2 显示一些视频时,它可以等待两个不同的按键输入并对它们做出不同的响应。
我正在使用这段代码来等待特定的键:
if cv2.waitKey(1) & 0xFF == ord('q'):
break
Run Code Online (Sandbox Code Playgroud)
假设我想使用第二个键“w”并以不同的方式响应该键,我的第一次尝试是:
if cv2.waitKey(1) & 0xFF == ord('q'):
break
elif cv2.waitKey(1) & 0xFF == ord('w'):
print('w is pressed')
Run Code Online (Sandbox Code Playgroud)
但效果不太好,我必须一直按w一段时间,直到程序响应。
有什么建议如何去做吗?
非常感谢。
问题是,waitKey 方法被调用多次。您应该使用变量来存储其结果并多次检查:
pressedKey = cv2.waitKey(1) & 0xFF
if pressedKey == ord('q'):
break
elif pressedKey == ord('w'):
print('w is pressed')
Run Code Online (Sandbox Code Playgroud)
等待的原因是两个函数调用都会读取键盘缓冲区,因此只有当软件在评估第一个分支后立即收到 w 键时,才会执行第二个分支。
| 归档时间: |
|
| 查看次数: |
3465 次 |
| 最近记录: |