首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV_Python笔记之视频和摄像头读取

OpenCV是专门用来处理图像的库,既然能处理图片,那肯定也能处理视频和摄像头拍摄的视频及图片,因为视频就是由一帧帧图片连接而成的,而视频和图片也是借摄像头进行捕捉图像,所以理所当然的,OpenCV处理这些毫无压力。

读取视频

先上代码

cv2.VideoCapture()这个函数是创建一个对象,参数可以是视频文件,也可以是设备号,这里读取的视频文件,所以传入的是视频文件路径。

cap.get(5)这个函数是得到这个视频文件的FPS,因为OpenCV读取视频画面是使画面停留窗口的时间来控制播放的速度,如果要与原视频播放速度差不多那就可以对画面显示时间value进行设置value=1000/fps。

cap.read()这个函数如果读取到画面就会返回True和画面数据,布尔值可以检测视频是不是到结尾了,所以可以运用在while判断中。

if(cv2.waitKey(33) & 0xFF == ord('q'))这句的意思是画面持续的时间,如果在等待时间内按下了q键则退出循环,程序继续运行下面的代码,这段视频的FPS是29.97,换算成等待时间就是33毫秒,播放的速度就跟原视频速度基本一致。

读取摄像头

同样的用cv2.VideoCapture()创建一个对象,这里传入的是我电脑的摄像头代号,一般是0。

cap.isOpened()这个函数是检测摄像头有没有打开,如果摄像头打开了则返回true,否则返回False,那就需要用函数cap.open()打开设备。

cv2.cvtColor(frame,cv2.COLOR_BGR2BGRA)这个函数是对读取的图像进行处理,第二个参数是代表OpenCV读到的图像颜色是BGR编码的要改变成BGRA彩色图像,这样我们在窗口看见的画面就是彩色的,改变这个参数就会有不同的显示效果。

保存视频

cv2.VideoWriter_fourc()这个函数是定义视频的编码格式,FourCC 就是一个 4字节码,一般有这些格式DIVX, XVID, MJPG, X264, WMV1, WMV2,在Windows系统上用的较多的是DIVX。

也可以这样传cv2.cv.FOURCC('M','J','P','G')或者cv2.cv.FOURCC('MJPG')

cv2.VideoWriter()这个函数是设置保存视频的路径和文件名及格式,视频的FPS和画面的长宽大小。比如上面的FPS设置为20,长宽为640480。

设置好这些就跟读取摄像头的操作差不多了(按q键结束),运行程序就会发现项目里多了一个output.avi的视频文件。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304G0ERRZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券