函数介绍

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 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(10000)
        cv2.destroyAllWindows()
    path='jiaoyan.jpg'
    img=cv_read(path)
    cv_show('image',img)
    

    示例3

    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)
        # 持续检测按键情况
        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()有初步的认识

    作者:xdy517

    物联沃分享整理
    物联沃-IOTWORD物联网 » Opencv之cv2.waitKey()

    发表回复