购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.8 键盘事件

简单、常用的键盘事件是等待按键事件,它由waitKey函数来实现,该函数是我们的老朋友了,前面也碰到过多次。无论是刚开始学习OpenCV,还是使用OpenCV进行开发调试,都可以看到waitKey函数的身影。然而,基础的东西往往容易被忽略掉,在此可以好好了解一下这个基础又常用的waitKey函数。该函数延时一定时间,返回按键的值;当参数为0时就永久等待,直到用户按键。该函数声明如下:

waitKey([delay]) -> retval

其中参数delay是延时的时间,单位是毫秒,默认是0,表示永久等待。该函数在至少创建了一个HighGUI窗口并且该窗口处于活动状态时才有效。如果有多个HighGUI窗口,则其中任何一个都可以处于活动状态。

waitKey函数是一个等待键盘事件的函数,当参数值delay≤0时,等待时间无限长。当delay为正整数 n 时,至少等待 n 毫秒才结束。在等待期间,如果任意按键被按下,则函数结束,返回按键的键值(ASCII码)。如果等待时间结束用户仍未按下按键,则函数返回-1。该函数用在处理HighGUI窗口的程序中,常与显示图像窗口的imshow函数搭配使用。

【例3.11】 等待按键10秒后销毁窗口

import cv2 as cv
import numpy as np

img=np.zeros((100,200))
cv.imshow("windowname", img);
cv.waitKey(0);#按下任意按键,图片显示结束,返回按键键值

cv.imshow("windowname2", img);
cv.waitKey(5000);#按下任意按键,图片显示结束,返回按键键值

cv.destroyAllWindows()

第一次显示的窗口,因为waitKey的参数是0,所以如果不去按键,就会一直显示。第二次显示的窗口,因为waitKey的参数是5000,即5s,所以如果5s内不去按键,就会自动返回。最后销毁所有窗口,程序结束。

运行工程,结果如图3-11所示。

总之,waitKey函数是非常简单且常用的函数,开始入门的时候需要掌握好它,开发调试的时候waitKey函数同样是一个好帮手。

图3-11 w4Q4nNhwHhk0k5ICwiHUxkzRa6fSSMypIXaW4ucTlpzP4LP1TPLyQQMo+7IHNPcU

点击中间区域
呼出菜单
上一章
目录
下一章
×