name=keyw
name=keywords><meta content="matlab中aviread和VideoReader" name=description><meta name="mobile-agent" content="format=html5;url=http://www.360doc.cn/article/11712807_323149698.html"/><meta content="matlab中aviread和VideoReader matlab中打开视频文件 aviread是7.0版之前的打开视频文件的函数,它只能打开非压缩格式的avi视频文件,所以你想使用这个函数,必须先借助某种工具(如WinAVI软件)把压缩的视频文件转换成非压缩的,但是会变得特别大。" name=360docabstract><meta content="www.360doc.com" name="author" /><title>matlab中打开视频文件<div> aviread是7.0版之前的打开视频文件的函数,它只能打开非压缩格式的avi视频文件,所以你想使用这个函数,必须先借助某种工具(如WinAVI软件)把压缩的视频文件转换成非压缩的,但是会变得特别大。下面举例说明,如果我们想处理视频的第一帧,需要先提取出来:</div><div>user_entry = input('Please enter an avi filename: ','s');</div><div>M = aviread(user_entry); %输入文件必须为非压缩格式</div><div>[dontneed numberofframes] = size(M); %得到视频的总帧数</div><div>Frame1 = M(1,1); %M为1*numberofframes数组</div><div>Image1 = frame2im(Frame1); %视频帧转换成图像</div><div>然后就可以进行处理啦,其他帧也一样。</div><div> 新版本的matlab建议用VideoReader函数取代aviread函数对视频进行读取,而且适用于压缩格式的多种文件格式,同样的功能如下:</div><div>user_entry = input('Please enter an avi filename: ','s');</div><div><div>readerobj = VideoReader(user_entry, 'tag', 'myreader1');</div><div>vidFrames=read(readerobj);</div></div><div>numberofframes=get(readerobj,'numberofFrames');</div><div>Image1=vidFrames(:,:,:,1);</div><div> 如果需要对处理后的图像按视频方式播放,或者转换成avi格式保存</div><div>for i = 1:numberofframes</div><div> imshow(image); %第一次播放(连续显示普通图像)</div><div> mov(i)=getframe; %已经转换成了视频帧的格式,包含cdata和colormap</div><div>end</div><div>hf=figure;</div><div>set(hf,'position',[500 800 readerobj.Width readerobj.Height]);</div><div>movie(hf,mov,1,readerobj.FrameRate); %第二次播放</div><div>movie2avi(mov,'out.avi'); </div><div>上面程序对处理后的图像按视频方式播放了两次。</div><div><br></div><div><br></div>