2013-05-10 97 views
1

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

这里是我的代码

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 

是否有更好的方式来enchance我的代码,实现我的动画

回答

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