opencv-python:cv2.waitKey()使用注意

1. waitKey函数功能

说白了就是对键盘事件进行delay(ms)的等待(delay=0则为无限等待),若触发则返回该按键的ASSIC码(否则返回-1)
在这里插入图片描述

2. 使用范例

这里我们创建一个全黑窗口,并设置按键功能(‘m’,‘n’则打印数字,'q’则退出)
PS:ord()函数——Return the Unicode code point for a one-character string.

import cv2

i = 1
while True:
    cv2.imshow('tmp', np.zeros(shape=(1000, 1000, 3), dtype=np.uint8))
    key = cv2.waitKey(1)
    if key == ord('m'):
        print(i)
        i += 1
    if key == ord('n'):
        print(i)
        i += 1
    if key == ord('q'):
        break
cv2.destroyAllWindows()

3. 使用注意

这里建议,若需要多个waitKey()的判断语句(比如上面程序需要3个判断),那么先将cv2.waitKey()赋值给一个变量,再用该变量去判断;比如下面这段反面示例,每个判断语句都调用一次cv2.waitKey(),则容易造成资源浪费,若电脑性能不够,则会造成按键不灵敏的问题(可能按下’n’但是没有反应)。

import cv2

i = 1
img = np.zeros(shape=(1000, 1000, 3), dtype=np.uint8)
while True:
    cv2.imshow('img', img)
    if cv2.waitKey(1) == ord('m'):
        print(i)
        i += 1
    if cv2.waitKey(1) == ord('n'):
        print(i)
        i += 1
    if cv2.waitKey(1) == ord('q'):
        break
cv2.destroyAllWindows()
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值