Opencv的waitKey()函数

1.waitKey()函数   (属于HighGUI模块)

        使用key=cv2.waitKey(0)函数可以发现返回得到的key是int类型,而我们通过ord()函数得到的ASCLL码是8位的,因此我们会经常采用 key&0xFF ==ord('q') 来 对 键盘事件进行准确的判断。

        waitkkey([delay])其中参数delay表示一个延时值,单位ms,默认为0,永久延时,一直等待,直到用户按键。如果 我们再delay指定时间内按下按键,返回对应按键的 ASCLL码;规定时间内未做出按键操作,返回-1.

        同时如果delay<=0同样 会无限等待,>0则等待delay ms.比如waitKey(1000)则等待1s.

2.使用cv2.VideoCapture播放视频时 waitKey()该如何设置?

        首先需要下载ffmpeg,官网为https://www.ffmpeg.org/,下载后并设置环境变量我们即可以使用ffplay,ffprobe指令来查看视频帧数。如下:

ffplay "视频文件路径"

可以发现我视频帧数为30​​帧/s,因此 waitKey可以设置为1000/30=33ms

播放视频代码如下:

import cv2
#创建窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',640,480)
#获取视频设备(摄像头) /从视频文件读取视频

cap=cv2.VideoCapture(r"C:\Users\86166\Videos\Captures\shipin.mp4")

while True:
    ret,frame=cap.read ()
    cv2.imshow('video',frame)  #frame为第二个参数 视频帧
    print(frame.shape)
    key=cv2.waitKey(33) #根据视频帧数设置  延时
    if(key&0xFF==ord('q')):
        break
#释放资源
cap.release()
cv2.destroyAllWindows()

​​​​​

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值