AVI文件转换为一系列的图像
134(30天)
显示旧的评论
接受的答案
钱德拉Kurniawan
2012年3月11日
你好,
这是一个简单的版本:
obj = mmreader (“rhinos.avi”);
vid =阅读(obj);
帧= obj.NumberOfFrames;
为x = 1:框架
imwrite (vid (:,:: x), strcat (“框架- - - - - -”num2str (x),“.tif”));
结束
您可以使用您自己的视频通过替换的犀牛。avi的用你自己的。
我希望这工作!
更多的答案(3)
以利亚Galbreath
2021年6月30日
outputFolder = uigetdir(路径);
%读入视频
viddir = uigetdir(路径);
viddir = fullfile (viddir,“test.avi”);
obj = VideoReader (viddir);
vid =阅读(obj);
%的帧数
帧= obj.NumFrames;
为x = 1:框架
%创建一个文件名
outputBaseFileName = sprintf (“帧% 4.4 d.png”,x);
outputFullFileName = fullfile (outputFolder outputBaseFileName);
imwrite (vid (:,:: x), outputFullFileName,“png”);
结束
0评论
图像分析
2012年3月11日
这样做在这里看到我的代码:
//www.tatmou.com/matlabcentral/answers/30847-how-save-frames-that-exit-from-video-in-a-specific-folder
这里是关键线路:
outputFolder =“c: /用户/不管”;变化百分比!
%读电影中。
mov = aviread (movieFullFileName);
%确定有多少帧。
numberOfFrames =大小(mov, 2);
为帧= 1:numberOfFrames
%从电影中提取帧结构。
thisFrame = mov .cdata(框架);
%创建一个文件名。
outputBaseFileName = sprintf (“帧% 4.4 d.png”、框架);
outputFullFileName = fullfile (outputFolder outputBaseFileName);
%写出来到磁盘。
imwrite (thisFrame outputFullFileName,“png”);
结束
Sushil沙玛
2019年9月23日
编辑:Sushil沙玛
2019年9月23日
Upadte回答
在以免veriosn matlab,我们必须使用
VideoReader
而不是
mmreader
,那么你可以将任何视频文件转换为帧
这里简单的代码框架
% %改变.avi格式图像帧
obj = VideoReader (“test2.avi”);
vid =阅读(obj);
帧= obj.NumberOfFrames;
为x = 1:框架
imwrite (vid (:,:: x), strcat (“框架- - - - - -”num2str (x),“使用”));
结束
2的评论
图像分析
2023年4月3日
@William Thielicke
整个视频读入RAM磁盘,然后写出一帧。这可能是尽可能快的走了。这可能是调用imwrite花时间()。我假设你使用SSD驱动器。你可以试着用内存虚拟盘,而不是你的SSD保存你的个人文件。