看到以前matlab中读取视频多

使用mmreader等(参考《matlab读取/播放视频的函数》),而现在matlab有一个专门的视频读取类VideoReader完成视频读取的功能。

相关博文:《matlab写入/合成视频VideoWriter类 》

0。 一个读取视频,显示帧,并保存每一帧 的代码
fileName = 'MVI_1264_clip.avi';
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;% 帧的总数
for k = 1 : numFrames% 读取数据
    frame = read(obj,k);
    imshow(frame);%显示帧
    imwrite(frame,strcat(num2str(k),'.jpg'),'jpg');% 保存帧
end
下面具体介绍VideoReader类的函数。

1。VideoReader - 该函数用于读取视频文件对象。
函数调用格式:
obj = VideoReader(filename)
obj = VideoReader(filename,Name,Value)
其中obj为结构体,包括如下成员:
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: []
如,视频的总帧数为numFrames = obj.NumberOfFrames;
在不同的系统平台下,可以读取的视频文件类型如下:
所有系统平台:AVI (.avi), Motion JPEG 2000 (.mj2)
所有Windows系统:MPEG-1 (.mpg), Windows Media Video (.wmv, .asf, .asx), 和任何Microsoft DirectShow?支持的类型。
Windows 7系统:MPEG-4, 包括 H.264 编码视频 (.mp4, .m4v), Apple QuickTime Movie (.mov), 和任何Microsoft Media Foundation支持的类型。
Macintosh系统:MPEG-1 (.mpg), MPEG-4, 包括 H.264 编码视频 (.mp4, .m4v), Apple QuickTime Movie (.mov),
和任何在http://support.apple.com/kb/HT3775中列出的QuickTime支持的类型。
Linux系统:Any format supported by your installed plug-ins for GStreamer 0.10 or above, as listed on http://gstreamer.freedesktop.org/documentation/plugins.html, including Ogg Theora (.ogg).
2 该类其他成员函数:
get - 获取视频对象的参数
参数的名字为上述obj对象的所有成员。
调用格式:
Value = get(obj,Name)
Values = get(obj,{Name1,...,NameN})
allValues = get(obj)
get(obj)
如:
xyloObj = VideoReader('xylophone.mpg');
xyloSize = get(xyloObj, {'Height', 'Width', 'NumberOfFrames'})
set - 设置视频对象的参数,与get对应
调用格式:
set(obj,Name,Value)
set(obj,cellOfNames,cellOfValues)
set(obj,structOfProperties)
settableProperties = set(obj)
如:
newValues.Tag = 'My Tag';
newValues.UserData = {'My User Data', pi, [1 2 3 4]};
xyloObj = VideoReader('xylophone.mpg');
set(xyloObj, newValues)
set(xyloObj, 'Tag', 'This is my tag.');
getFileFormats - 获取在该系统平台下,VideoReader可以支持读取的视频类型。
调用格式:
formats = VideoReader.getFileFormats()
isPlatformSupported - 检测在当前系统平台下VideoReader是否可用
调用格式:
supported = VideoReader.isPlatformSupported()
read - 读取视频帧
调用格式:
video = read(obj),获取该视频对象的所有帧
video = read(obj,index),获取该视频对象的制定帧
如:
video = read(obj, 1);         % first frame only 获取第一帧
video = read(obj, [1 10]);    % first 10 frames 获取前10帧
video = read(obj, Inf);       % last frame only 获取最后一帧
video = read(obj, [50 Inf]);  % frame 50 thru end 获取第50帧之后的帧

[转载]matlab视频读取函数VideoReader的更多相关文章

  1. MATLAB视频读取转换为图片

    转换mp4到jpg格式的图片: % convert .mp4 to jpg picture t='C:\Documents and Settings\luokh\桌面\Matlab编程\Matlab编 ...

  2. 也谈matlab中读取视频的一个重要函数mmreader

    也谈matlab中读取视频的一个重要函数mmreader 在matlab中输入help mmreader来查阅一下该函数,有如下信息: MMREADER Create a multimedia rea ...

  3. 『转载』Matlab中fmincon函数获取乘子

    Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说     ...

  4. OpenCV计算机视觉学习(1)——图像基本操作(图像视频读取,ROI区域截取,常用cv函数解释)

    1,计算机眼中的图像 我们打开经典的 Lena图片,看看计算机是如何看待图片的: 我们点击图中的一个小格子,发现计算机会将其分为R,G,B三种通道.每个通道分别由一堆0~256之间的数字组成,那Ope ...

  5. OpenCV视频读取播放,视频转换为图片

    转载请注明出处!!! http://blog.csdn.net/zhonghuan1992 OpenCV视频读取播放,视频转换为图片 介绍几个有关视频读取的函数: VideoCapture::Vide ...

  6. matlab中subplot函数的功能

    转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...

  7. [转载]Matlab中fft与fftshift命令的小结与分析

    http://blog.sina.com.cn/s/blog_68f3a4510100qvp1.html 注:转载请注明出处——by author. 我们知道Fourier分析是信号处理里很重要的技术 ...

  8. matlab中norm函数的用法

    格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM   Matrix or vecto ...

  9. Matlab批量读取文件夹文件

    现在有一个文件夹 里面有50个左右的txt文件 每个文件大概三万行 两列 第一列是字符串 第二列是浮点数字 我只需要读第二列 现在我想写一个.M文件 批量读取这个文件夹里的txt文件 读取完以后的数组 ...

随机推荐

  1. Prime Ring Problem素数环(HDU1016)

    Prime Ring Problem 思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件.字典序可以采用扩展 ...

  2. 155-PHP stripos函数

    <?php $str='password'; //定义一个字符串 $position=strpos($str,'S'); //查找字母s第一次出现的位置 echo '字母S的位置是'.$posi ...

  3. 089-PHP数组运用 - 通过循环函数取出部分成员合并成新数组

    <?php function myfunc($arr){ //定义过滤函数 $j=count($arr); for($i=0;$i<$j;$i++){ if($arr[$i]>=0& ...

  4. Java 二叉树深度 判断平衡二叉树

    package cookie; public class BTreeDepthIsBalanced { int depth(BNode head) { if (head == null) { retu ...

  5. Tornado中的Cookie设置

    Tornado中的cookie分为两种--普通cookie和安全cookie 普通cookie 1.创建cookie 原型 self.set_cookie(name, value, domain=No ...

  6. Java的优先队列PriorityQueue详解

    一.优先队列概述 优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序, 可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类 对于基本数据类型的包装器 ...

  7. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

  8. 数据结构顺序表中Sqlist *L,&L,Sqlist *&L

    //定义顺序表L的结构体 typedef struct { Elemtype data[MaxSize]: int length; }SqList; //建立顺序表 void CreateList(S ...

  9. kettle将csv文件导入数据库

    具体过程学习了: 1.连接数据库 2.添加新资源库 3.选择Other Repositories 4.选择Database Repository,第二个需要配置额外参数 5.连接数据库相关设置 6.连 ...

  10. 大数据高可用集群环境安装与配置(10)——安装Kafka高可用集群

    1. 获取安装包下载链接 访问https://kafka.apache.org/downloads 找到kafka对应版本 需要与服务器安装的scala版本一致(运行spark-shell可以看到当前 ...