readerobj = VideoReader('Lena.avi'); vidFrames = read(readerobj); numFrames=readerobj.NumberOfFrames; for k = 1 : numFrames-2 mov3=vidFrames(:,:,:,k); mov4=rgb2gray(mov3); imshow(mov4); %matlab里图像与矩阵是直接对应的,矩阵第一行存储的数据就是图像第一行的数据,并不是图像从左下角开始的一行数据 mov(k)=getframe; mov5(k)=im2frame(mov4,gray(256)); end hf = figure('position', [400 400 readerobj.Width readerobj.Height]); %按视频方式显示,输入的必须是帧文件 movie(hf, mov5, 1, readerobj.FrameRate); %输出的视频是倒着的(首尾各行对调),可能是im2frame函数把数据倒过来啦??? hf3 = figure('position', [600 600 readerobj.Width readerobj.Height]); movie(hf3,mov,1,readerobj.FrameRate); %输出的视频是正常的 |
|
来自: susongdada > 《Matlab》