我有一个代码,它采用视频并将其分成帧。我不想保留所有帧,而是希望每个帧都显示在上图中。 代码如下所示:
filename = uigetfile; %get the file name
obj = VideoReader(filename);
nFrames=obj.NumberOfFrames;
for k = 1 : nFrames
this_frame = read(obj, k);
thisfig = figure();
thisax = axes('Parent', thisfig);
image(this_frame, 'Parent', thisax);
title(thisax, sprintf('Frame #%d', k));
另一件重要的事情是,我计算每个图形的强度,但是在保存数据后我不需要保存图形。 任何人都可以帮助我,并告诉我我的代码应该改变什么? 谢谢!
答案 0 :(得分:1)
不确定它是否是一个完整的解决方案,但代码中的一个改进肯定是将figure()
命令移出循环。
也许这已经足够了,或者您需要按照handle中的说明将图像命令分配到this related question,以便在绘制新图像之前删除最后绘制的图像。< / p>
答案 1 :(得分:1)
filename = uigetfile; %get the file name
obj = VideoReader(filename);
nFrames=obj.NumberOfFrames;
thisfig = figure();
for k = 1 : nFrames
this_frame = read(obj, k);
thisax = axes('Parent', thisfig);
image(this_frame, 'Parent', thisax);
if k==nFrames
title(thisax, sprintf('Frame #%d', k));
end
end