视频与一系列图片之间的相互转化(Matlab程序)


1. 将视频转换成图片

video = 'bolt';%视频名字
testvideo = strcat('I:\video\', video , '.avi'); %视频完整地址
savePath = strcat('I:\video\' , video , '\');%保存图片的路径
mov = mmreader(testvideo);
numFrames = get(mov, 'numberOfFrames');% 获得帧数
w=waitbar(0,'Reading the file now');  %进度条
for i=1:numFrames
    frames=read(mov,i);
    strtemp=strcat(savePath, int2str(i),'.','jpg');
    imwrite(frames(:,:,:,1),strtemp);  %保存图片
    waitbar(i/numFrames,w,'Please wait...');
end
waitbar(1,w,'Finish');
pause(1);


2. 将图片组成视频

% 函数说明:将某文件夹下的所有的jpg图片,生成avi视频文件
% avi_file_name 不用带扩展名,最终生成的视频文件自动扩展名为.avi
% image_file_path=e:\testvideo\singer1_change\
% avi_save_path 结尾不带\
% 例如调用格式 image2avi_ok('skating002','e:\testvideo\skating2_change\','e:\testvideo\skating2_change\')

function image2avi_ok(avi_file_name,image_file_path,avi_save_path)
writerObj =VideoWriter(strcat(avi_save_path,'\',avi_file_name,'.avi'));
open(writerObj);
image_file_path_temp=strcat(image_file_path);
image_num=dir(strcat(image_file_path,'*.jpg'));
for n=1:length(image_num)
    index_str=num2str(n);
    image_name=[image_file_path_temp,index_str,'.jpg']; 
    frame=imread(image_name); 
    writeVideo(writerObj,frame);
end
close(writerObj);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值