• 利用opencv实现视频捕捉功能


     1 import cv2 as cv
     2 import numpy as np
     3 
     4 
     5 def video_demo():
     6     capture = cv.VideoCapture(0)   #打开摄像头,参数0代表设备ID(设备表示号),也就是电脑自带的摄像头,人如果要设置成其他摄像头,可以更改这个参数
     7     while(True):
     8         ret,frame = capture.read()  #读取摄像头,它能返回两个参数,第一个参数是bool 型的ret,其值为True或者False,代表有没有读到图片;第二个参数frame,表示读取当前一帧的图片
     9         frame = cv.flip(frame,1)     #翻转   等于0:上下颠倒     大于0:水平颠倒  小于0:180旋转
    10         cv.imshow("video",frame)
    11         c = cv.waitKey(10)
    12         if c == 27:   
    break # 这里代码的意思是按下esc键就会把这个捕捉到的视频图片关闭掉 或者也可以按下q 键来关闭视频图片,但是代码是这样写
    cv.waitKey(10) & 0xff == ord('q')
    15 video_demo()
    16 cv.waitKey(0)
    17 18 cv.destroyWindows()

        注意:上面那个捕捉到摄像头的视频,点击窗口关闭是关闭不了的,而且当你修改图片翻转方式的时候,你再执行代码的话会有代码报错,因为他是一个死循环,所以你必须按照上面说的那样,才能实现视频翻转调节功能,这里一定要注意,一开始,自己以为写的代码有bug,后来注意到了这里,不是代码的原因,这里涉及到个人隐私问题,就不拿视频照片举列子了,按照我上面说了,操作就完全没问题,哈哈哈。

           接下来操作一个读取视频文件:

            

     1 import cv2 as cv
     2 
     3 def capture_video():
     4     capture = cv.VideoCapture('D:/tt.avi')   #这里面的参数是视频资源路径
     5     while True:
     6         ret ,frame=capture.read()
     7         if not ret:
     8             break
     9         cv.imshow('video',frame)
    10         c = cv.waitKey(50)
    11         if c == 27 :
    12             break
    13 t1=cv.getTickCount()
    14 
    15 capture_video()
    16 
    17 t2=cv.getTickCount()
    18 
    19 print('the time is : %s ms'%((t2-t1)/cv.getTickFrequency()*1000))
    20 
    21 cv.waitKey(-1)
    22 cv.destoryAllWindows()

          通过上面操作就可以实现读取视频文件了,但是有一个缺点,就是读取的视频文件播放没有声音,目前还不知道怎样加载出声音来,hh 。

      

  • 相关阅读:
    使用Wireshark 抓取数据包
    React Native 开发之 (07) 常用组件-View
    Swift开发之 (01) 语法
    React Native 开发之 (05) flexbox布局
    React Native 开发之 (06) JSX
    深入浅出Redis02 使用Redis数据库(String类型)
    React Native 开发之 (04) 例子讲解
    npm命令大全
    npm
    node.js
  • 原文地址:https://www.cnblogs.com/1121518wo/p/10803579.html
Copyright © 2020-2023  润新知