2013-05-10 99 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