如何把连续视频帧转为视频的matlab代码

原先用opencv做这个工作,不过总是会出现一些意想不到的问题

今天网速搜了搜,发现matlab有现车的函数,分析给大家:

function CreatAviFromPic(picfrom,picend,picformat,aviname)
%把图片集合成一段avi视频
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 施云涛 2009年01月08日
% 使用avifile、addframe、getframe等函数实现
% 输入:
%      picfrom起始位置
%      picend终止位置
%      picformat图片格式,以字符输入
%      aviname生成avi的名字,必须带后缀名,以字符输入
%输出:当前目录下,名字为aviname的视频文件
%备注:所有图片的大小必须与第一次输入的大小一致
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%获得图片格式
% dir('TrackResultPic\*.jpg');
picname=strcat('*.',picformat);
%显示该目录下的该图片格式的所有图片,此处如使用ls,ls所得的结果是字符数组,对下一步无法更好操作
picname=dir('TrackResultPic\*.jpg');
%使用avifile,可进行很多参数的设定修改
aviobj = avifile(aviname);
% aviobj = avifile('test.avi')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%可调整的参数
% Adjustable parameters:
%                Fps: 15.0000
%        Compression: 'Indeo5'
%            Quality: 75
%     KeyFramePerSec: 2.1429
%          VideoName: 'test.avi'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%
%%自动获得的参数
% Automatically updated parameters:
%         Filename: 'test.avi'
%      TotalFrames: 0
%            Width: 0
%           Height: 0
%           Length: 0
%        ImageType: 'Unknown'
%     CurrentState: 'Open'
%%%%%%%%%%%%%%%%%%%%%%%
aviobj.Quality = 100;
aviobj.compression='None';
%使用addframe把图片写入视频
for i=picfrom:picend
    str = strcat('TrackResultPic\',(picname(i,1).name));
    picdata=imread(str);
    aviobj=addframe(aviobj,uint8(picdata));
end
aviobj=close(aviobj); 

很简单,稍作调整就可以使用

不过用qq影音不是正常的推出,应该是参数设置那里出现的问题

有待进一步研究。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值