matlab中怎样将一个视频文件转化为图片
推荐于2017-09-27 · 知道合伙人游戏行家
关注
展开全部
[filename,pathname,fileindex]=uigetfile('*.avi','请选择一个Avi文件');
video_info=aviinfo([pathname filename]);
% info =
% Filename: 视频名称
% FileSize: 视频大小
% FileModDate: 视频创建日期
% NumFrames: 视频总帧数
% FramesPerSecond: 视频采集速率
% Width: 视频宽度
% Height: 视频高度
% ImageType: 'truecolor' 图像模式
% VideoCompression: 'DIV3' 视频图像压缩格式
% Quality: 0
% NumColormapEntries: 0
LEN=video_info.NumFrames; %获得视频长度
for k=1:LEN
video_videotape(k)=aviread(video_info.Filename,k);
video_image=video_videotape(k).cdata;
if k<10
imwrite(video_image,strcat('0000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=10 & k<100
imwrite(video_image,strcat('000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=100 & k<1000
imwrite(video_image,strcat('00',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=1000 & k<1000
imwrite(video_image,strcat('0',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
else
imwrite(video_image,strcat(int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
end
end
备注:通过更改imwrite那儿的很多参数,可以获得自己想要的很多结果,比如更改bmp为jpg,以及其它,
video_info=aviinfo([pathname filename]);
% info =
% Filename: 视频名称
% FileSize: 视频大小
% FileModDate: 视频创建日期
% NumFrames: 视频总帧数
% FramesPerSecond: 视频采集速率
% Width: 视频宽度
% Height: 视频高度
% ImageType: 'truecolor' 图像模式
% VideoCompression: 'DIV3' 视频图像压缩格式
% Quality: 0
% NumColormapEntries: 0
LEN=video_info.NumFrames; %获得视频长度
for k=1:LEN
video_videotape(k)=aviread(video_info.Filename,k);
video_image=video_videotape(k).cdata;
if k<10
imwrite(video_image,strcat('0000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=10 & k<100
imwrite(video_image,strcat('000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=100 & k<1000
imwrite(video_image,strcat('00',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
elseif k>=1000 & k<1000
imwrite(video_image,strcat('0',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
else
imwrite(video_image,strcat(int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
end
end
备注:通过更改imwrite那儿的很多参数,可以获得自己想要的很多结果,比如更改bmp为jpg,以及其它,
展开全部
mov=aviread('C:\xx\xx\xxx.avi');
video_image1=mov(1).cdata;%提取第一帧的图片
imshow(video_image1)
video_image1=mov(1).cdata;%提取第一帧的图片
imshow(video_image1)
追问
那把全部帧保存下来怎么办
追答
做个循环就行了
Length=size(mov,2); %计算电影的总祯数
for i=1:1:Length
video_image=mov(i).cdata;
imwrite(video_image,['video_image_',sprintf('%03d',i),'.bmp'],'bmp');
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询