![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=1739116206-vNj2sf2IhvcEeRBU4DxPGcDnaMq9ZSCU-0-834bc674d42b6bf279a089cab893bba6)
执行结果 这个程序会持续显示jk.jpg,直到按下键盘上任意键。
程序实例ch1_5.py:让图像显示5秒或按键盘上任意键后列出waitKey( )函数的返回值。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1324.jpg?sign=1739116206-fHiehbU1CXZ623qgLJZ68O9fLFxzDwke-0-f6f014b0c875e862288e621be1c5d261)
执行结果 图像显示结果可以参考ch1_2.py。下方左图是等待5秒且没有按键发生的Python Shell窗口结果,下方右图是直接按键盘E键的结果。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1327.jpg?sign=1739116206-zdETmk3wrxyY5Q4tpW8PFi1PIfRXks3U-0-0384cca62240615f0433a57072f315ee)
注:执行此程序时,需要设置系统为英文输入模式,如果输入是一般键盘键,可以使用ret_value == ord(key)判断是否按了特定的键盘字符。
程序实例ch1_5_1.py:让图像持续显示,直到按下键盘的Q键。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P19_1330.jpg?sign=1739116206-cofhySnLWL1Zr96rVucAk7UppQLFlZRQ-0-463510df34599d86f7e0bc64a7429529)
执行结果 这个程序会持续显示jk.jpg,直到按下Q键。