Matlab:为图像增加一条动画

时间:2013-05-10 23:17:14

标签: matlab animation line movie

我成功地为图像添加了一条水平线。我希望线条开始向下移动,同时删除前一行。最后我想将这部电影保存为avi格式

这是我的代码

A=imread('IMG_0628.JPG');
B=A(:,:,2);
for k=1:50:801
imshow(B), hold on
plot([1,597],[k,k])
N(k)=getframe
end

在显示动画时,我将在命令窗口中显示以下内容

N = 

   cdata: [400x299x3 uint8]
colormap: []


N = 

1x51 struct array with fields:
cdata
colormap


N = 

1x101 struct array with fields:
cdata
colormap


N = 

1x151 struct array with fields:
cdata
colormap

尝试通过movie(N)命令运行影片时出现以下错误

??? Error using ==> movie
Movie contains uninitialized frames

有没有更好的方法来增强我的代码并实现我的动画

1 个答案:

答案 0 :(得分:0)

两件事:

绘制线条时取回手柄,然后删除getframe后的手柄,并确保电影的帧顺序编号(现在每50帧有一个非空帧):

  A=imread('IMG_0628.JPG');
  B=A(:,:,2);
  imshow(B); hold on;
  counter = 1;
  for k=1:50:801
      linehandle = plot([1,597],[k,k]);
      N(counter)=getframe;
      counter = counter + 1;
      delete(linehandle);
  end