1

我成功地在图像中添加了一条水平线。我希望该行开始向下移动,同时擦除前一行。最后我想把这部电影保存为 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

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

4

1 回答 1

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
于 2013-05-10T23:49:08.930 回答