![OpenCV计算机视觉项目实战(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/696/52842696/b_52842696.jpg)
上QQ阅读APP看书,第一时间看更新
1-4-3 等待按键的事件
OpenCV的cv2.waitKey( )函数会等待按键事件,语法如下:
ret_key = cv2.waitKey(delay)
ret_key:返回值,如果在指定时间内没有按下键盘的键,则返回值是-1。如果按下键盘的键,则返回值是按键的ASCII码。常用于检测键盘按键,对应的ASCII码值如下:
Enter:13 Esc:27 Backspace:8 Space:32
delay:单位是毫秒,每1000毫秒等于1秒。
使用OpenCV显示图像时可以使用cv2.waitKey(delay)设定图像显示的时间,或是在显示时间内按键盘上的任意键,也可以让cv2.waitKey( )函数执行结束。delay=0或省略,代表无限期等待。delay=1000相当于等待1秒。
程序实例ch1_4.py:让图像持续显示,直到按下键盘上任意键。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P18_1315.jpg?sign=1739261140-Yaeh6XN4KKLGY2CNXSC2dk1ZA5fzhkoh-0-c13de8ff0f2762836a1a26853ebad10a)
执行结果 这个程序会持续显示jk.jpg,直到按下键盘上任意键。
程序实例ch1_5.py:让图像显示5秒或按键盘上任意键后列出waitKey( )函数的返回值。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1324.jpg?sign=1739261140-X1fbhkt5hUiUXw7Szsr2OyztQShHgGUe-0-74479e09bf55169715580d84b9a023df)
执行结果 图像显示结果可以参考ch1_2.py。下方左图是等待5秒且没有按键发生的Python Shell窗口结果,下方右图是直接按键盘E键的结果。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1327.jpg?sign=1739261140-qeVcISv6xVDXt90WheZGybUVRnLZt8AD-0-930d413471d52c39273003a56c7cb9a5)
注:执行此程序时,需要设置系统为英文输入模式,如果输入是一般键盘键,可以使用ret_value == ord(key)判断是否按了特定的键盘字符。
程序实例ch1_5_1.py:让图像持续显示,直到按下键盘的Q键。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1330.jpg?sign=1739261140-IqxIF2PigEvWlhj76StCFdr3plIzgivr-0-d1b1a49a7bfee4dc6d7568c5036dd97e)
执行结果 这个程序会持续显示jk.jpg,直到按下Q键。