Q1:matlab视频播放时,怎么将所有视频转换成matlab可以播放的视频?
A1:
1.matalb中函数aviread对读取avi的视频比较苛刻,aviread支持无压缩格式的avi和 'Cinepak'格式的avi文件和'Indeo5'压缩格式的avi压缩的AVI格式的视频,而且不是所有的格式的avi都能读取。
2:解决方法:下载WinAVI 9.0软件,将视频转换为AVI格式,编码器选择编码格式ZJMedia Uncompress RGB24,转换后即可。
3.我的相机拍摄的视频格式为MJPEG压缩格式的Avi文件,所以不能直接播放。
4.还有另外的方法:下载mmread工具包或者VideoIO 工具箱或者使用交互式matlab Movie播放器,这三种方法更通用,可以后面尝试用下。参见《matlab图像/视频处理应用及实例》P60。
5.使用函数VideoReader显示:“Undefined function or method 'VideoReader' for input arguments of type 'char'.”原因:没有下载VideoIO工具箱
6. 知识点补充:
(1) AVI格式:AVI(Audio Video Interleave):比较早的AVI是Microsoft开发的。其含义是Audio Video Interactive,就是把视频和音频编码混合在一起储存。AVI也是最长寿的格式,已存在10余年了,虽然发布过改版(V2.0于1996年发布),但已显老态。AVI格式上限制比较多,只能有一个视频轨道和一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。
( 2)Truecolor Image:真彩色格式的图像。假设图像由M行N列的像素构成,每个像素点上的值由R,G,B三个颜色通道构成,每个颜色通道的取值为0~255的整数。因此,真彩色格式的图像的存储空间为M * N *3 的三维矩阵,这个三维矩阵中每个元素的取值为0~255的整数。
(3)Indexed Image:索引图像。图像实际上只有限种类的颜色,种类数量为m。假设图像仍然由M行N列的像素构成。实际上这个图像就可以看做由m种色彩,总数M*N的小瓷砖拼成的。为了描述这幅图像,我们在M*N个点上,定每个点的值为索引号,索引号的范围是0~m,表示每个像素点只能取m种颜色的一种。另外,为了使索引下标有颜色上的意义,我们同时构造出一张颜色的索引表,这个表的存储空间为m*3(每个M对应相应的RGB三种分量),在每个索引号(每行)对应不同的R,G,B颜色空间。这样我们就能跟据每个点的值查找出该点的颜色,从而描述出一幅图像了。 因此一幅索引图的存储空间为M*N+m*3。