Matlab 处理avi视频文件为单帧任意大小图片
主要是imresize()这个函数的用法。
上代码:
clc;
clear;
video=mmreader('D:\videotest\Video 1.avi');
nFrames = video.NumberOfFrames; %得到帧数
H = video.Height; %得到高度
W = video.Width; %得到宽度
Rate = video.FrameRate;
% Preallocate movie structure.
mov(1:nFrames) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);
%获取每一帧
for i = 1:nFrames
mov(i).cdata = read(video,i);
P = mov(i).cdata;
%imresize() []中格式要求:[高 宽]
Q = imresize(P,[720 960]);
disp('当前播帧数:'),disp(i);
imshow(P),title('原始图片');%显示原始图片
if i<10
imwrite(Q,strcat('0000',int2str(i),'.jpg'),'jpg');%写入文件中
else if i>=10 & i<100
imwrite(Q,strcat('000',int2str(i),'.jpg'),'jpg');
else
imwrite(Q,strcat('00',int2str(i),'.jpg'),'jpg');
end
end
end
Ubuntu Server上安装Matlab
Matlab与C/C++联合编程之从Matlab调用C/C++代码