我正在尝试将循环中的图像写入 AVI 文件。现在,我正在使用 VideoWriter 和 getframe 来实现这一目标。代码通常是这样的:
FoodVideo = VideoWriter('tempp.avi');
FoodVideo.FrameRate = 25;
open(FoodVideo);
hh=figure('Visible','off');
for i=1:20
imshow(example_image{i});
hold on;
text(100,100,sprintf('Frame Number: %d',i));
hold off;
currFrame = getframe(hh);
writeVideo(FoodVideo,currFrame);
end
close(FoodVideo);
问题是 getframe 在写入之前显示图像。我想不出一种将文本合并到图像数据中的方法,所以我消除了这种处理方式(使用 im2frame ...)。我知道我可以使用 avifile 和 addframe,但我想使用 VideoWriter,因为 matlab 说 avifile 将被删除......有没有办法使用 VideoWriter 编写图像而不先显示?
另一个相关问题:当我运行我的代码时,似乎我捕获的是我的屏幕而不是图形;我最近换了一台电脑,这种情况只发生在新电脑上。有没有人知道为什么会这样?
谢谢,阿维拉姆