使用MATLAB读取视频并获取视频信息、分帧保存
题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域。因此,想写博客来记录自己的学习进度。老师安排的第一次任务为:用MATLAB读取视频,观察和学习视频的相关信息,并分帧保存为一个个彩色图像;计算每幅图的RGB三个矩阵的均值,并且用曲线图绘制出来;用MATLAB在视频的第一帧中选一个区域,将选中区域的局部RGB矩阵均值计算出来并绘制相应曲线图。
今天完成的是第一步(- .-):使用MATLAB读取视频并获取视频信息、分帧保存。
要读取视频,直接使用MATLAB内置函数VideoReader即可。格式为:OBJ = VideoReader(FILENAME)
在命令行窗口输入
obj = VideoReader('D://Project//VideoMaterials//00.avi')
FILENAME中的内容为视频存储的绝对路径(默认路径为工程目录)。该语句读取一个视频到obj结构。
VideoReader函数自动获取视频相关信息:
Name - -视频文件名
Path – 视频文件路径
Duration – 视频的总时长(秒)
FrameRate - -视频帧速(帧/秒)
NumberOfFrames – 视频的总帧数
Height – 视频帧的高度
Width – 视频帧的宽度
BitsPerPixel – 视频帧每个像素的数据长度(比特)
VideoFormat – 视频的类型, 如 ‘RGB24’.
Tag – 视频对象的标识符,默认为空字符串”
Type – 视频对象的类名,默认为’VideoReader’.
UserData – Generic field for data of any class that you want to add to the object. Default: []
要分帧保存为彩色图像,也是用内置函数imwrite。格式为imwrite(A,FILENAME,FMT),其中,A为待保存的某一帧,FILENAME为保存目录,FMT为保存格式。
e.g.imwrite(frame,strcat('D:\Project\Pictures\',num2str(k),'.jpg'),'jpg')
【注】定义strcat 即 Strings Catenate,横向连接字符串。语法 combinedStr= strcat(s1, s2, ..., sN)。
将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是元胞数组,那么结果 combinedStr 是一个元胞数组,否则,combinedStr是一个字符数组。其实它的作用很简单就是将多个字符连接成单个字符串,关键在于这个语句中括号里面的内容,
'D:\Project\Pictures\' 加了单引号的,就说明单引号里面的内容为:字符串 ,下面的'.jpg' 只是字符串而已,原样输出即可。
最终代码:
obj = VideoReader('D://Project//VideoMaterials//00.avi');%输入视频位置
numFrames = obj.NumberOfFrames;% 帧的总数for i = 1 : 15% 读取前15帧frame = read(obj,i);%读取第几帧% imshow(frame);%显示帧imwrite(frame,strcat('D:\Project\Pictures\',num2str(i),'.jpg'),'jpg');% 保存帧end
(来源:https://blog.csdn.net/qq_23097931/article/details/51108747)
使用MATLAB读取视频并获取视频信息、分帧保存相关推荐
- 文件笔记之javaCV 视频工具|获取视频时长|缩略图
文件笔记之javaCV 视频工具|获取视频时长|缩略图) 目录 简介 依赖引入 实现 目录 简介 通过javaCV 视频工具-截取视频缩略图.获取视频属性 依赖引入 <!--javaCV 视频工 ...
- 怎么把动态图从python弄下来_Python将视频或者动态图gif逐帧保存为图片的方法
本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...
- python怎么存为动图_Python将视频或者动态图gif逐帧保存为图片的方法
本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...
- ffmpeg读取本地视频,获取视频帧
本文转自:https://blog.csdn.net/yinsui1839/article/details/80519742 /******** *本代码参考自雷神博客 * **********/ # ...
- 有趣且重要的JS知识合集(15)前端上传视频后获取视频的相关信息
通过视频文件上传后监听loadedmetadata事件来获取视频属性 getVideoInfo(file) {return new Promise(resolve => {const video ...
- php视频播放链提取,php获取腾讯云点播上传视频后获取视频url地址以及时长 | 小灰灰博客...
/** * Created by PhpStorm. * User: 小灰灰 * Date: 2018/12/23 9:02 * Other: */ class Test { public funct ...
- java通过视频URL获取视频时长,无需下载视频,修复jave在linux上的bug
背景 项目中有一个需求,要获取前端上传过来的视频的时长.分辨率等信息.网上查了下,java后端基本上都是用的jave获取视频信息,jave的官网在此. 不过网上的教程都是获取本地视频的信息,jave提 ...
- 通过读取/proc/cpuinfo获取CPU信息
1.简介 上一篇介绍了如何通过cpuid指令获取CPU信息,本文主要介绍如何通过读取/proc/cpuinfo文件获取CPU信息.本文从"什么是/proc文件系统","如 ...
- iOS - AVPlayer播放视频,获取视频尺寸(宽高)
公司启动页要求播放视频,其实很简单,AVPlayer可以胜任此任务. - (void)playVideoWithType:(NSString *)type {//获取视频sizeNSURL *medi ...
最新文章
- Java垃圾回收之新生代垃圾收集器
- 解析目标检测全流程!附代码数据
- 在Python中查找和替换文本,玩转Python正则
- The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'
- 这简历一看就是包装过的
- 限制用户不允许输入中文字符
- 本地分发_2020年分发Python应用程序的12个热门途径
- 23期PHP基础班第四天
- 【Java】反转数组元素
- 集合的常用方法(增加、删除、并集、交集、差集、对等差分、超集和子集)
- 200 万年薪的博士,华为到底看重什么?
- collectd 5.7.2 发布,系统监控和统计工具
- C/C++ 基础算法2
- 重置电脑的网络配置 -- 解决防火墙问题导致的应用启动失败
- 快速批量改变图片格式
- H5 canvas制作数字连线效果
- 【IDEA系列】利用 IntelliJ IDEA 进行代码对比的方法
- 三菱驱动器参数表_三菱伺服驱动器参数都设置什么啊详细点谢谢
- Thinkpad E431 解决无线网卡无法开启
- 图片公式转word公式