求问matlab对视频进行帧操作
小弟最近在做一个课程设计,老师要求的是给一个视频数据库,先把里面的视频进行提取帧操作,然后放在不同文件夹中,然后对比每个文件中的帧数,找到最小,设置为a,然后对大于a帧的...
小弟最近在做一个课程设计,老师要求的是给一个视频数据库,先把里面的视频进行提取帧操作,然后放在不同文件夹中,然后对比每个文件中的帧数,找到最小,设置为a,然后对大于a帧的文件夹进行删除帧操作,最后使每个文件夹中恰有帧数—a帧(如果可以,尽量删除首尾的帧,保留中间的帧):这是小弟写的前半部分代码,还有后面对帧数的比较和删除的不会,请大神帮忙看看,感激不尽!!!
xyzobj=VideoReader('YYK.3gp');
qweobj=VideoReader('YYK.avi');
asdobj=VideoReader('YYK.mp4');
fnum1 = xyzobj.NumberOfFrames;
fnum2 = qweobj.NumberOfFrames;
fnum3 = asdobj.NumberOfFrames;
for i = 1 : fnum1-1000 %i从1到1047
Img=read(xyzobj,i); %读取第i帧
imwrite(Img,strcat('D:\abc\',['img_',sprintf('%04d',i),'.jpg']));%将第i帧写入到指定文件夹,"img_000i.jpg"图片
end %结束
for j = 1 : fnum2-1000 %i从1到1047
Img=read(qweobj,j); %读取第i帧
imwrite(Img,strcat('D:\def\',['img_',sprintf('%04d',j),'.jpg']));%将第i帧写入到指定文件夹,"img_000j.jpg"图片
end %结束
for k = 1 : fnum3-1000 %i从1到1047
Img=read(asdobj,k); %读取第i帧
imwrite(Img,strcat('D:\ghi\',['img_',sprintf('%04d',k),'.jpg']));%将第i帧写入到指定文件夹,"img_000j.jpg"图片
end %结束 展开
xyzobj=VideoReader('YYK.3gp');
qweobj=VideoReader('YYK.avi');
asdobj=VideoReader('YYK.mp4');
fnum1 = xyzobj.NumberOfFrames;
fnum2 = qweobj.NumberOfFrames;
fnum3 = asdobj.NumberOfFrames;
for i = 1 : fnum1-1000 %i从1到1047
Img=read(xyzobj,i); %读取第i帧
imwrite(Img,strcat('D:\abc\',['img_',sprintf('%04d',i),'.jpg']));%将第i帧写入到指定文件夹,"img_000i.jpg"图片
end %结束
for j = 1 : fnum2-1000 %i从1到1047
Img=read(qweobj,j); %读取第i帧
imwrite(Img,strcat('D:\def\',['img_',sprintf('%04d',j),'.jpg']));%将第i帧写入到指定文件夹,"img_000j.jpg"图片
end %结束
for k = 1 : fnum3-1000 %i从1到1047
Img=read(asdobj,k); %读取第i帧
imwrite(Img,strcat('D:\ghi\',['img_',sprintf('%04d',k),'.jpg']));%将第i帧写入到指定文件夹,"img_000j.jpg"图片
end %结束 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询