matlab中怎样将一个视频文件转化为图片

 我来答
科技微技巧
推荐于2017-09-27 · 知道合伙人游戏行家
科技微技巧
知道合伙人游戏行家
采纳数:256 获赞数:30087
我是陕西理工学院的一名学生。为人坦率、热情、讲求原则;处事乐观、专心、细致、头脑清醒;富有责任心。

向TA提问 私信TA
展开全部
[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,以及其它,
hello_nancy_ls
2012-05-10 · TA获得超过326个赞
知道答主
回答量:55
采纳率:0%
帮助的人:77.7万
展开全部
mov=aviread('C:\xx\xx\xxx.avi');
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式