用matlab提取avi录像里的每帧图像,并保存,但是保存的图片都是一片黑色,求解,是什么原因,怎么改
mov=aviread('123.AVI');temp=size(mov);fnum=temp(2);fori=1:fnum,strtemp=strcat(int2str...
mov=aviread('123.AVI');
temp=size(mov);
fnum=temp(2);
for i=1:fnum,
strtemp=strcat(int2str(i),'.','JPG');
imwrite(mov(i).cdata(:,:,:),strtemp);
end%% 从视频中提出每一帧图像 展开
temp=size(mov);
fnum=temp(2);
for i=1:fnum,
strtemp=strcat(int2str(i),'.','JPG');
imwrite(mov(i).cdata(:,:,:),strtemp);
end%% 从视频中提出每一帧图像 展开
1个回答
展开全部
从上面的程序看,主要问题有:1,mov是一个structure,有两个部分mov.cdata和mov.colormap,
2,要区分.avi文件的颜色格式,如是truecolor格式,则mov.cdata的size是M*N*3且mov.colormap是空的,如是 indexed格式,则mov.cdata的size是M*N且mov.colormap的size是M*3,因此,程序中有多处不完善的地方,不能处理所有的情况,就会出现全黑的图像。若要改,可把录像文件发过来,我调试用。
2,要区分.avi文件的颜色格式,如是truecolor格式,则mov.cdata的size是M*N*3且mov.colormap是空的,如是 indexed格式,则mov.cdata的size是M*N且mov.colormap的size是M*3,因此,程序中有多处不完善的地方,不能处理所有的情况,就会出现全黑的图像。若要改,可把录像文件发过来,我调试用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询