2013-08-02 27 views
0

我有一些圖像覆蓋了一些軌道,然後變成了電影,但是我收到了這個錯誤(關於代碼最後的行)。在MatLAB中寫入視頻錯誤

??? Undefined function or method 'writeVideo' for 
input arguments of type 'uint8'. 

的誤差在這段代碼的最後一行來:

% add this frame to movie file 
    %mov = addframe(mov,gcf); 
    renderer = get(hnd,'renderer'); 
    if strcmp(renderer,'painters') 
     renderer = 'opengl'; 
    end 
    set(hnd, 'Units', 'pixels'); 
    pixelsperinch = get(0,'screenpixelsperInch'); 

    frame = hardcopy(hnd, ['-d' renderer], ['-r' num2str(round(pixelsperinch))]); 
    writeVideo('mov',frame); %error appears here 
+0

你想使用'VideoWriter'類嗎?你在哪裏用構造函數創建了視頻對象? 「writeVideo」的第一個輸入需要是對象,而不是文件名。 – horchler

回答

0

上Acoustic77的評論跟進,它看起來像你有你的VideoWriter對象爲MOV,但你傳遞字符串'mov'而不是對象mov來writeVideo。

% demo using random data and surface plot 

mov = VideoWriter('demo.avi'); 
mov.open; 

figure; 
for x = 1:10 
    data = rand(25,25); 
    surf(data); 

    renderer = get(gcf,'renderer'); 
    if strcmp(renderer,'painters') 
     renderer = 'opengl'; 
    end 
    frame = hardcopy(gcf, ['-d' renderer], ['-r' num2str(round(300))]); 

    writeVideo(mov, frame); 

end 

mov.close; 
mov.delete; 
+0

這是問題,謝謝! – Acoustic77