我生成了多个图像,我将其转换为带有im2frame的帧以创建电影。我用了这段代码:
for i = 10:20
images = sprintf('img%d.jpg',i);
ImageData = imread(images);
M(i) = im2frame(ImageData);
end
movie(M)
movie2avi(M,'sonar.avi','compression','None','fps',5,'quality',100)
当我运行它时,我收到以下错误:
Error using hgMovie
Movie contains uninitialized frames
Error in movie (line 41)
builtin('hgMovie',varargin{:});
Error in open83B_edited_2 (line 324)
movie(M)
有没有人知道我的代码可能有什么问题? 谢谢!
答案 0 :(得分:0)
您收到该错误的原因是因为您的电影中有些帧未初始化 - 这意味着没有数据。这是有道理的,因为在你的循环中,当你应该在1开始时,你开始写入索引为10的M
数组。因此,视频中的前9帧是空的,MATLAB不是那样:)。
有了这个,我怀疑它与你的循环索引有关。考虑将M(i)
语句更改为:
M(i-9) = im2frame(ImageData);
这样,您可以保留图像文件名格式,同时从索引1开始正确写入数组。