matlab中将视频流转换成图片 & 将图片集合成一段avi视频

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。matlab中将视频流转换成图片 & 将图片集合成一段avi视频,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、将视频流转换成图片

function VideoStreamtTOPic(videoname,OutPicPath)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%  input: the name of video stream and the path to save the picture
%  output: picture  

a=mmreader(videoname);
nframes=a.NumberOfFrames;
for i = 1:nframes
im = read(a, i);
imwrite(im,[OutPicPath '.jpg']); 
end
end

对于上面程序举例如下:

在命令窗口或m文件的编辑窗口输入以下语句即可;

videoname=’mei.mpg’;

OutPicPath=’K:\视频流转成图片\mei\’;

VideoStreamtTOPic(videoname,OutPicPath)

注意:视频’mei.mpg’位于matlab当前工作目录下;


二、将图片集合成一段avi视频

function CreatAviFromPic(picfrom,picend,picformat,aviname)
% 使用avifile、addframe、getframe等函数实现
% 输入: 
%      picfrom起始位置
%      picend终止位置
%      picformat图片格式,以字符输入
%      aviname生成avi的名字,必须带后缀名,以字符输入
%输出:当前目录下,名字为aviname的视频文件
%备注:所有图片的大小必须与第一次输入的大小一致
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%获得图片格式
picname=strcat('*.',picformat);
%显示该目录下的该图片格式的所有图片,此处如使用ls,ls所得的结果是字符数组,对下一步无法更好操作
picname=dir(picname);
%使用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 = 60;
aviobj.compression='Indeo5';
%使用addframe把图片写入视频
for i=picfrom:picend
    picdata=imread((picname(i,1).name));
    aviobj=addframe(aviobj,uint8(picdata));

end
aviobj=close(aviobj);

图片集转AVI函数相关注意事项:

1)修改图片集中图片的名字,保证其名字长度一致;如00001.jpg、00002.jpg、00003.jpg······00578.jpg

2)先把该函数文件放到图片的集合

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

程序使用说明:
1、将所有图片放入程序同目录下,且命名为00001.jpg的格式;
2、在命令窗口输入,如:CreatAviFromPic(00001,00040,’jpg’,’1.avi’);
3、程序运行完后,在命令行输入:pack; 即可;

举例说明如下:

在matlab命令窗口输入:

CreatAviFromPic(00001,00040,’jpg’,’1.avi’);

pack;

即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162989.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!