1、将视频转换成图片并保存

% 读取视频
video=VideoReader('E:\MATLAB\wsy.mp4');%lastFrame = read(video, inf); %如果警告无法确定帧数先使用此条指令读取最后一帧Framenum=video.NumFrames; %确定总帧数,根据MATLAB版本选择使用NumFrames或NumberOfFramesdisp(Framenum);% 分离图片
for i=1:Framenumdisp(i);image_name=strcat('E:\MATLAB\img_',num2str(i),'.jpg');  %指定图片保存路径和名称I=read(video,i);                  %读出视频中第i帧图片imwrite(I,image_name,'jpg');      %保存图片end
disp('over')

1、将一系列图片生成视频并保存

FramePath = 'E:\MATLAB\img_';  %图像序列所在路径StartFrame = 1;  %定义初始帧EndFrame = 1500; %定义结束帧。%生成视频及参数设定
video=VideoWriter('E:\MATLAB\wsy');  %创建一个视频文件,默认是avi格式video.FrameRate=25; %设置帧速率open(video); %打开视频%写入图片
for i=StartFrame:EndFramedisp(i)frames=imread([FramePath ,num2str(i),'.jpg']);writeVideo(video,frames); %将当前图片写入视频endclose(video); % 关闭创建视频disp('over');%根据设置的参数,上述生成的视频包含1500张图片,每秒25张,所以视频时长1分钟;

说明:在将视频转换成图片的程序运行有bug时可以阅读以下内容

①在使用VideoReader函数读取视频文件时,如果遇到类似如“Error Creating Source Reader Reason: 不支持给定的 URL 的字节流类型”的错误,可能的原因是当前的视频文件,在当前的系统下没有相应的解码驱动程序。这时候需要下载安装解码驱动程序,这里提供一个Windows10官方解码驱动程序windows.10.codec.pack 提取码:d9sz,下载安装后重新读取视频,验证VideoReader函数是否可用。

②在确认VideoReader函数可以读取视频的前提下,使用下列代码确定视频总帧数时

Framenum=video.NumFrames;

可能遇到“警告:无法确定此文件中的帧数”的问题,这个问题的原因是视频可能采用可变帧速率进行编码,在这种情况下,MATLAB在读取最后一帧之前无法检测帧数,因此,只要先读取最后一帧即可,使用的指令如下(上面程序中已经给出):

lastFrame = read(video, inf); %如果警告无法确定帧数先使用此条指令读取最后一帧

但是,使用这种方法极有可能导致MATLAB奔溃,以2016a版本的奔溃信息为例。如下

针对这一问题,我给出三种办法供参考:

①  多试几次,有不奔溃的时候(我是通过这种方法使用的),五五开吧,目前没有搞清是什么原因;

②  换个MATLAB版本(MathWorks技术顾问推荐的方法),我在2016a、2019b两个版本上都测试过,也都遇到了奔溃的问题,但也都通过①的办法成功运行过,基本上是可以的。偶然一次机会在2021版本上试了一下,一次性成功了,所以可能2021版本是可以的吧。

③  转换视频格式,可以借助一些软件将视频转换一下格式,换个编码方式,如果是这样的话可能就没有上述问题了,但转换后的视频不能保证图片是无损的,对于生成图片后续用于图像处理的不推荐该方法。

当然,如果要读取的视频编码方式本身就是可以支持的,那么上面的问题都不会出现,程序可以直接运行。

MATLAB视频与图片之间的相互转换相关推荐

  1. html让视频跟图片之间无缝,图片、样式、音视频之间的无缝拼接,教你一个万能方法!...

    原标题:图片.样式.音视频之间的无缝拼接,教你一个万能方法! 大家好,我是老沙. 发现没有,几乎每个品牌的公众号都开始长图排版了,长图排版最常遇到的一个问题便是缝隙.去缝的教程老沙写过不少: 关于静态 ...

  2. python代码实现视频与图片之间的互相转换

    一.视频与图片 1.视频   视频其实就是若干张图片叠加起来,包含了图像的运行信息.   由于人眼识别的帧率是有限的,因此在单位时间内给人眼观看的图像超过一定数目的时候,给人的感觉就好像画面是运动的, ...

  3. opencv视频和图片之间的处理

    一.利用numpy生成视频 import numpy as np import cv2def array2video(videoName, w, h):"""使用nump ...

  4. html让视频跟图片之间无缝,如何做到两个视频之间自然无缝衔接

    Vlog是一种很好的记录日常生活,表达自己想法的输出方式.但通常我们拍好素材之后会发现场景之间的转换太过生硬.那么,在前期拍摄的时候我们就要注意尽量使所有的场景符合自己想要表达的主题,片段之间跳跃性不 ...

  5. bmp图片和jpg图片之间的相互转换(OpenCV)

    无所事事,就写了很简单且无聊的程序,就是bmp图片和jpg图片的相互转换,下面是程序: jpg图片转换为bmp图片: 下载地址:http://sites.google.com/site/pengsky ...

  6. java pdf转为多张图片格式_java进行PDF和图片之间的相互转换

    简介 在项目中我们有时候会遇到操作PDF文件的需求,如将PDF的每一页转换成图片,今天我们就来实现一下相关功能. 实现 引入依赖 org.apache.pdfbox pdfbox 2.0.21 pdf ...

  7. OpenCV 视频与图片序列相互转换 VideoWriter生成视频流

    OpenCV学习笔记(四十七)--VideoWriter生成视频流highgui http://blog.csdn.net/yang_xian521/article/details/7440190 标 ...

  8. python图片转视频加特效_使用Python opencv实现视频与图片的相互转换

    因为最近要经常转换数据集进行实验,因此记录一下. 1.视频转图片 即为将视频解析为一帧一帧的图片: import cv2 vc=cv2.VideoCapture("/home/hqd/Pyc ...

  9. 视频和图片的相互转换

    // // test3.cpp // // 该程序实现视频和图片的相互转换. // Image_to_video()函数将一组图片合成AVI视频文件. // Video_to_image()函数将AV ...

  10. 《MATLAB》应用 之 用 MATLAB 将 视频 转换为 可调分辨率 的图片,badapple 视频转图片

    需要badapple视频的请前往:badapple原版视频 鼠标右键 视频 ->属性->详细信息->即可查看视频 帧率 和 分辨率,帧率与视频时间相乘得到总 帧数 badapple. ...

最新文章

  1. android - 常用知识点以及代码片段(不断更新)
  2. SAP Spartacus B2B页面Budget页面的设计原理
  3. GDIPlus灰度化图像
  4. 关于MongoDB数据库的可连接性稳定性 - 抛转篇
  5. Java讲课笔记14:final关键字
  6. Linux下 sshd服务不能启动
  7. Requests 入门
  8. 构造函数及其参数列表初始化问题
  9. 新建的邮件服务器只能发件不能收件_49. Django 2.1.7 使用内置函数发送邮件
  10. 速达软件|无法打开帐套数据库|一般性网络错误
  11. 如何用photoshop做24色环_色相环:用PS做色相环教程
  12. ACDSee 15/ACDSee Pro 6简体中文版破解注册机
  13. 【Machine Learning】【Andrew Ng】- Quiz2(Week 9)
  14. 更换固态硬盘(不重装系统)(3)
  15. 区块链学习—通证经济学的诺奖理论基础
  16. word分散对齐调整宽度_Word文字对齐如何调整,word对齐方法大全
  17. Python爬虫入门(四):实战,爬取4399小游戏首页
  18. 2021届 美的笔试 C++开发工程师
  19. 数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式
  20. openEuler实验-基于openEuler的云景平台文件管理系统

热门文章

  1. 亿图图示输入文字后画面自动缩小
  2. java一键生成海报_小程序生成海报(java后端)
  3. 计算电磁学MoM学习启动篇
  4. seetaface6之画出人脸位置
  5. widnows下lua开发环境luadist LuaRocks搭建
  6. 如何把苹果手机iPhone/iPad无线投屏到MAC电脑计算机上面?
  7. Excel如何删除表格中的空白列
  8. 计算机技术和信息技术结合,浅谈通信技术与计算机技术融合发展
  9. Android 电子书及阅读器Demo
  10. mathcad prime server system(PASS云计算书系统)开发