在Matlab中使用movie命令时出错

时间:2014-05-08 13:39:19

标签: matlab

我生成了多个图像,我将其转换为带有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)

有没有人知道我的代码可能有什么问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

您收到该错误的原因是因为您的电影中有些帧未初始化 - 这意味着没有数据。这是有道理的,因为在你的循环中,当你应该在1开始时,你开始写入索引为10的M数组。因此,视频中的前9帧是空的,MATLAB不是那样:)。

有了这个,我怀疑它与你的循环索引有关。考虑将M(i)语句更改为:

M(i-9) = im2frame(ImageData);

这样,您可以保留图像文件名格式,同时从索引1开始正确写入数组。