matlab练习程序(图像序列合成视频)
for i=1:40 fname=strcat('C:\Users\tc\Desktop\test\1 (',int2str(i),').bmp'); im(:,:,i)=imread(fname); imshow(im(:,:,i)) M(i) = getframe; end movie2avi(M,'out.avi','FPS',8)%输出视频
注:一下是2012.12.28增加:
上面的程序虽然也能够输出视频,不过效果不好,用到的getframe是截屏用的,而且帧数自己设置的也不可能达到最理想状态,所以就有了以下的一段程序,功能和上面的是一样的,不过效果更好。
clear all;
close all;
clc;
aviobj = avifile('out.avi','compression','None'); %初始化一个avi文件
for i=1:30
fname=strcat(num2str(i),'.bmp');
im(:,:,1)=imread(fname); %avi需要彩色数据
im(:,:,2)=im(:,:,1);
im(:,:,3)=im(:,:,1);
%以下两步可要可不要
figure(1);
imshow(im)
aviobj=addframe(aviobj,im); %一帧一帧的写入avi
end
aviobj=close(aviobj); %将缓存数据写入avi
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步