【问题标题】:Matlab: animating an added line to an imageMatlab:为图像添加线条动画
【发布时间】:2013-05-10 23:17:14
【问题描述】:

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

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

【问题讨论】:

    标签: matlab animation line movie


    【解决方案1】:

    两件事:

    在绘制线时取回句柄,然后在 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
    

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2022-12-28
      相关资源
      最近更新 更多