一、图片转换为moive
function im2movie(aviname, dirname)
% 将目录dirname中图片转换为avi电影(JPG图片)
% aviname:要保存的avi文件名
% dirname:文件所在的路径,最后不带"/"
t = cputime;
filename = dir(strcat(dirname, '/*.jpg')); % 读取目录中的文件名
for i = 1 : length(filename)
mov(i) = im2frame(imread(strcat(dirname, '/', filename(i).name)));
end
movie2avi(mov,aviname);
e = cputime - t
return
二、moive转换为图片
视频压缩格式有多种,要使用aviread读入视频,视频压缩格式需为:
VideoCompression: 'Cinepak'
VideoCompression: 'FMP4'和VideoCompression: 'XVID'
FMP4和XVID需先通过DVID转换软件转换为XVID,
然后再通过WinAvi转换软件转换为'Cinepak'压缩格式;
而 VideoCompression: 'Indeo5'可以直接通过WinAvi转换软件转换为'Cinepak'压缩格式
avi视频转换为'Cinepak'压缩格式后,就可以通过aviread读取,并通过aviinfo显示相关的视频信息
eg:
>> aviinfo('kids.avi')
ans =
Filename: 'kids.avi'
FileSize: 14548026
FileModDate: '21-Jul-2011 16:51:14'
NumFrames: 4488
FramesPerSecond: 29.9700 %帧速
Width: 448
Height: 336
ImageType: 'truecolor'
VideoCompression: 'FMP4' %压缩格式
Quality: 4.2950e+007
NumColormapEntries: 0
AudioFormat: 'Format #80'
AudioRate: 22050
NumAudioChannels: 1
function avi2im(AVIName)
%本程序的作用是将AVI视频转变成一帧帧的图像,AVIName为要处理的视频文件名,格式为avi,
%AVI视频默认存入在source目录下,在此AVIName不用写具体路径,只要是正确的文件名就可以了,
%转换成帧后的图像也默认存入source目录下。
%DirName是新建的下级文件夹,我们将把生成的图像存入此文件夹
% 一个avi视频转换成一帧一帧的程序
% 给大家提供一个avi视频转换成帧序列的程序
% 用法:建立一个source命名的文件夹,将avi视频放入,
% 调用avi2im('avi视频名称'),转换成的帧序列默认放入source文件夹下。
%要安装相应的解码器
AVIName=strcat('source\',AVIName);
InfoAvi =aviinfo(AVIName); %得到AVI视频的技术信息
frmNum=InfoAvi.NumFrames;
mov=aviread(AVIName); %要安装相应的解码器,才能将AVI文件转换成movie文件
%mkdir('C:\MATLAB7\work\source\traffic1'); %新建下级文件夹,以存放生成的图片
for frm=1:frmNum
mov =aviread(AVIName,frm); %将avi视频信息读入帧
imName=strcat(AVIName,int2str(frm),'.jpg'); %编辑图像名称,使其能存入下级文件夹,且不重名
imwrite(mov.cdata,imName); %将图像信息存入文件,以便其它处理程序使用
end
function im2movie(aviname, dirname)
% 将目录dirname中图片转换为avi电影(JPG图片)
% aviname:要保存的avi文件名
% dirname:文件所在的路径,最后不带"/"
t = cputime;
filename = dir(strcat(dirname, '/*.jpg')); % 读取目录中的文件名
for i = 1 : length(filename)
mov(i) = im2frame(imread(strcat(dirname, '/', filename(i).name)));
end
movie2avi(mov,aviname);
e = cputime - t
return
二、moive转换为图片
视频压缩格式有多种,要使用aviread读入视频,视频压缩格式需为:
VideoCompression: 'Cinepak'
VideoCompression: 'FMP4'和VideoCompression: 'XVID'
FMP4和XVID需先通过DVID转换软件转换为XVID,
然后再通过WinAvi转换软件转换为'Cinepak'压缩格式;
而 VideoCompression: 'Indeo5'可以直接通过WinAvi转换软件转换为'Cinepak'压缩格式
avi视频转换为'Cinepak'压缩格式后,就可以通过aviread读取,并通过aviinfo显示相关的视频信息
eg:
>> aviinfo('kids.avi')
ans =
Filename: 'kids.avi'
FileSize: 14548026
FileModDate: '21-Jul-2011 16:51:14'
NumFrames: 4488
FramesPerSecond: 29.9700 %帧速
Width: 448
Height: 336
ImageType: 'truecolor'
VideoCompression: 'FMP4' %压缩格式
Quality: 4.2950e+007
NumColormapEntries: 0
AudioFormat: 'Format #80'
AudioRate: 22050
NumAudioChannels: 1
function avi2im(AVIName)
%本程序的作用是将AVI视频转变成一帧帧的图像,AVIName为要处理的视频文件名,格式为avi,
%AVI视频默认存入在source目录下,在此AVIName不用写具体路径,只要是正确的文件名就可以了,
%转换成帧后的图像也默认存入source目录下。
%DirName是新建的下级文件夹,我们将把生成的图像存入此文件夹
% 一个avi视频转换成一帧一帧的程序
% 给大家提供一个avi视频转换成帧序列的程序
% 用法:建立一个source命名的文件夹,将avi视频放入,
% 调用avi2im('avi视频名称'),转换成的帧序列默认放入source文件夹下。
%要安装相应的解码器
AVIName=strcat('source\',AVIName);
InfoAvi =aviinfo(AVIName); %得到AVI视频的技术信息
frmNum=InfoAvi.NumFrames;
mov=aviread(AVIName); %要安装相应的解码器,才能将AVI文件转换成movie文件
%mkdir('C:\MATLAB7\work\source\traffic1'); %新建下级文件夹,以存放生成的图片
for frm=1:frmNum
mov =aviread(AVIName,frm); %将avi视频信息读入帧
imName=strcat(AVIName,int2str(frm),'.jpg'); %编辑图像名称,使其能存入下级文件夹,且不重名
imwrite(mov.cdata,imName); %将图像信息存入文件,以便其它处理程序使用
end