函数介绍
cv2.waitKey(delay_time)
这个函数主要用于同图片显示搭配使用。在一段程序运行的过程中突然出现这么一个函数,可以理解为程序将暂停delay_time后,再继续执行后面的代码。
参数介绍
delay_time 若值为0,意味着一直等待按键的按下,只有按键按下之后后面的程序才会继续执行若值为正整数, 假设delay_time=30,程序将在30ms内等待按键的按下,若期间有按键按下,则立刻跳出等待执行后面的程序,反之,需要完整等候30ms再继续执行后面的程序返回值
返回按键的ASCII值。若没有按键按下则返回-1。
示例
通过3个示例让大家对函数有更加深刻得认识
示例1
同图片显示搭配使用,等待任意按键的按下,即delay_time=0,最终效果是按下任意按键后图片关闭
import cv2#图片读取函数def cv_read(path): ret=cv2.imread(path) if ret is None: print("Error!") exit() return ret#图片显示函数def cv_show(name,image):#创建窗口,大小可改变 cv2.namedWindow(name,cv2.WINDOW_NORMAL) cv2.imshow(name,image) #等待任意按键按下 cv2.waitKey(0) cv2.destroyAllWindows()#图片路径 建议将图片放到项目文件下path='jiaoyan.jpg'img=cv_read(path)cv_show('image',img)
示例2
延时后继续执行代码,将上面的delay_time 更换为10000后,图片将等待10秒后关闭,若在10秒内按下任意按键图片就会立刻关闭
import cv2def cv_read(path): ret=cv2.imread(path) if ret is None: print("Error!") exit() return retdef cv_show(name,image): cv2.namedWindow(name,cv2.WINDOW_NORMAL) cv2.imshow(name,image) cv2.waitKey(10000) cv2.destroyAllWindows()path='jiaoyan.jpg'img=cv_read(path)cv_show('image',img)
示例3
import cv2def cv_read(path): ret=cv2.imread(path) if ret is None: print("Error!") exit() return retdef cv_show(name,image): cv2.namedWindow(name,cv2.WINDOW_NORMAL) cv2.imshow(name,image) # 持续检测按键情况 while True: # 当按键为‘q’时才能够关闭所有窗口 if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows()path='C:\\Users\\86185\\opencv\\jiaoyan.jpg'img=cv_read(path)cv_show('image',img)
结语
希望通过3个示例能让大家对cv2.waitKey()有初步的认识