opencv读取视频文件 教你提取opencv视频地址

1.从视频文件中获取图像。使用cap = cv2.videocapture('文件名')构建视频文件的cap实例。cap.read()方法逐帧提取视频,每一帧都是一幅图像。cap.read()方法返回二进制组,下标0的元素值为True或False。如果为false,则表示读取文件已完成。下标1的元素是i***ge对象,也是nump...

1.从视频文件中获取图像。

使用cap = cv2.videocapture('文件名')构建视频文件的cap实例。cap.read()方法逐帧提取视频,每一帧都是一幅图像。cap.read()方法返回二进制组,下标0的元素值为True或False。如果为false,则表示读取文件已完成。下标1的元素是i***ge对象,也是numpy数组类型的数据。Cap.isopen()用于检查Cap实例是否打开。Cap.release()释放实例。在下面的例子中,视频文件被读取并显示,以达到播放的效果。同时增加了waitKey()返回值的判断。您可以按下“Q”或“Q”键退出循环。这里先将waityKey()返回的值与0xff phase进行比较,再与字符的ord()值进行比较,以避免某些系统中waitKey()返回的值在high byte不为零的情况。

import cv2cap = cv2.VideoCapture('..\vtest.avi')while cap.isOpened(): ret, img = cap.read() if ret is not True: print("读取完成,退出") break #处理img cv2.imshow('vedio', img) #检查按键 key = cv2.waitKey(20) & 0xff if key == ord('q') or key == ord('Q') : break print('cap.isOpened():',cap.isOpened())cap.release()print('cap.isOpened():',cap.isOpened())

运行结果:

cap.isOpened(): Truecap.isOpened(): False

从运行结果来看,cap.isopen()的返回值在cap.release()之前始终为真。

2.从动态图片中获取图像。

使用VideoCapture(文件名)方法打开gif格式图片,操作过程和上面提到的普通视频文件类似。

3.从摄像机中获取图像。

要打开摄像机,您需要使用摄像机的设备号(数字整数)作为VideoCapture(摄像机号)的输入。比如cap = cv2。VideoCapture(0)构建一个编号为0的摄像机访问实例,第二个摄像机传入1,依此类推。后续步骤的处理方法与读取视频文件相同。

import cv2cap = cv2.VideoCapture(0)while cap.isOpened(): ret, img = cap.read() if ret is not True: print("读取失败,退出") break #处理img cv2.imshow('vedio', img) #检查按键 key = cv2.waitKey(20) & 0xff if key == ord('q') or key == ord('Q') : break print('cap.isOpened():',cap.isOpened())cap.release()print('cap.isOpened():',cap.isOpened())

4.写视频文件。

要编写视频文件,需要创建一个VideoWriter对象,并依次传入四个参数:

第1个为文件名称;第2个为编码方式,其中编码方式和文件名称后缀有对应关系;第3个参数为每秒写入的帧数,参考数值为25,符合人眼习惯;第4个参数是图像大小,int类型;

常用文件名的后缀与编码方式的对应关系如下:

文件后缀编码方式aviXVIDaviMJPGavimp4v(小写)mp4mp4v(小写)

编码方法需要创建一个VideoWriter_fourcc对象。例如,您可以通过以下两种方式创建MJPG类型编码:

fourcc=cv2.VideoWriter_fourcc('M','J','P','G')fourcc=cv2.VideoWriter_fourcc(*'MJPG')

图像大小可以通过cat.get(propId)方法获得,但是这个方法获得的是float类型,需要转换成int类型,然后传入VideoWriter。

cap = cv2.VideoCapture(0)width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)width = int(width)height = int(height)

以下是使用三种编码方法创建视频文件的示例:XVID、MJPG和mp4v:

import cv2 #获取图像宽高cap = cv2.VideoCapture(0)width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)width = int(width)height = int(height)print(width,height) #创建VideoWriter对象fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('output.avi', fourcc, 25.0, (width, height))fourcc = cv2.VideoWriter_fourcc(*'MJPG')out2 = cv2.VideoWriter('output2.avi', fourcc, 25.0, (width, height))fourcc = cv2.VideoWriter_fourcc(*'mp4v')out3 = cv2.VideoWriter('output3.mp4', fourcc, 25.0, (width, height))while cap.isOpened(): ret, img = cap.read() print(img.shape) if ret is not True: print("读取失败,退出") break #处理img cv2.imshow('vedio', img) out.write(img) out2.write(img) out3.write(img) #检查按键 key = cv2.waitKey(1) & 0xff if key == ord('q') or key == ord('Q') : break cap.release()out.release()out2.release() out3.release()

本文来自浅沫投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/557368.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-21
下一篇 05-21

相关推荐

  • 读取外置存储权限在哪里打开?

    【读取外置存储权限在哪里打开?】核心答案要点:总结:1、首先打开手机设置。2、进入手机设置页面后,找到应用管理并点开。3、在应用管理界面中,找到需要读取存储权限的应用, 总结:1、首先打开手机设置。2、进入手机设置页面后,找到应用管理并点开。3、在应用管理界面中

    2023-07-28 23:20:01
    183 0
  • opencv读取视频文件 opencv读取视频的过程是解码

    介绍深入分析OpenCV中VideoCapture对象背后的视频编解码第三方库支持和速度奥秘。支持的第三个编***库和类型我们都知道OpenCV中的VideoCapture视频阅读就是在其他第三方库的帮助下进行编码和解码的过程。目前支持的视频解码主要包括:mkv / mpeg2mkv / h2***mkv / h265 mkv /

    2023-07-26 12:39:01
    499 0
  • 移动硬盘无法读取怎么办 硬盘读不出来怎么解决

    据网友反映,他们的移动硬盘打不开,自己拔插也没用,也没法读。难道是硬盘坏了?先不要担心这些问题,跟着边肖去解决就行了。1、硬盘电源不足:分析:硬盘插前面板u***接口,无法识别。如果后面的u***接口可以读取,说明前面的u***接口供电并不不足。解决方法:用电脑后置USB接

    2023-07-17 04:17:01
    848 0
  • 电脑硬盘无法读取该怎么解决 电脑硬盘无法读取该怎么解决问题

    不知道大家有没有这样的问题。你想在你的电脑里安装一个固态硬盘,但是在你确认固态硬盘正确安装在主机后,你打开“我的电脑”,你找不到固态硬盘。这是什么原因造成的?给大家分享一下安装固态硬盘后电脑系统无法识别的解决方案。第一步:重启电脑,启动电脑后立即连续按F2键

    2023-07-14 15:54:01
    501 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信