You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV中多次调用cv2.waitKey引发卡顿、按键响应异常的解决方法

解决OpenCV中多次调用cv2.waitKey导致的按键检测卡顿问题

问题原因

  • 每次调用cv2.waitKey(1)都会从按键事件缓冲区读取一个按键值,同时阻塞程序1毫秒
  • 连续三次调用时,第一次调用已消费当前按键事件,后续两次调用大概率无法读取到同一个按键,只有持续按住按键(持续生成事件)时,后续调用才可能捕获到,这就导致需要长按数秒才能触发对应逻辑
  • 三次调用的累积阻塞时间也会拖慢程序响应速度

解决方案

只需调用一次cv2.waitKey(1),将返回值存入变量,再通过这个变量判断不同按键:

key = cv2.waitKey(1)
if key == 100:  # 对应'd'键
    show_crop = not show_crop
elif key == 99:  # 对应'c'键
    show_cv = not show_cv
elif key == 116:  # 对应't'键
    show_curr_track = not show_curr_track

效果说明

  • 单次读取按键缓冲区,确保每个按键事件被精准捕获,不会因多次调用导致事件丢失
  • 仅1毫秒的阻塞不会影响程序流畅度,按键操作会被即时响应

内容的提问来源于stack exchange,提问作者Birinder Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:21:07