如何用MATLAB.avi格式的视频读成一帧一帧的

 我来答
llzzcc66
推荐于2017-12-15 · 知道合伙人数码行家
llzzcc66
知道合伙人数码行家
采纳数:81385 获赞数:171463
公司运维员工

向TA提问 私信TA
展开全部
将视频转换为帧图片
mov=aviread('D:\road2.avi'); %读入
fnum=size(mov,2); %读取视频的祯数,mov为1*fnum矩阵
for i=1:fnum
strtemp=strcat('D:\cc\',int2str(i),'.','bmp');%将每祯转成bmp格式的图片
imwrite(mov(i).cdata(:,:,:),strtemp);
end
我的视频是D盘中的road2,存入的文件是D盘CC文件夹,你按你的路径输入。

对AVI 的格式有要求,转成非压缩的24位RGB就可以了

虽同AVI文件,但压缩率是不同的,而MATLAB认不出压缩的AVI,所以读不进去会出错,只有将AVI还原为未压缩的情况下,MATLAB才能顺利读入。

可以试一下aviinfo查看一下avi视频文件的压缩格式,一般是无压缩的可以正常读取。

>> aviinfo traffic.avi
ans =
Filename: 'D:\Program Files\MATLAB\R2009a\toolbox\images\imdemos\traffic.avi'
FileSize: 208896
FileModDate: '20-八月-2007 12:34:40'
NumFrames: 120
FramesPerSecond: 15
Width: 160
Height: 120
ImageType: 'truecolor'
VideoCompression: 'MP42'
Quality: 0
NumColormapEntries: 0
>>
clc; clear all; close all;
mov=aviread('rhinos.avi'); %读入
fnum=size(mov,2); %读取视频的祯数,mov为1*fnum矩阵
figure(1);
for i=1:fnum
strtemp=strcat(int2str(i),'.','bmp');%将每祯转成bmp格式的图片
imwrite(mov(i).cdata(:,:,:),strtemp);
figure(1); imshow(mov(i).cdata(:,:,:), []); pause(0.1);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式