原文地址:MATLAB?movie?函數動態繪圖作者:小霖cheeron
MATLAB movie 函數動態繪圖
電影動畫的好處就是,運行一次可以多次播放,甚至可以直接生成avi文件,直接獨立與Matlab環境播放。這是其它三種動畫制作方法所不具備的。
MATLAB中,創建電影動畫的過程分為以下四步:
step1:調用moviein函數對內存進行初始化(該步驟在Matlab5.3以上均可省略),創建一個足夠大的矩陣,使之能夠容納基于當前坐標軸大小的一系列指定的圖形(此處稱為幀)。
step2:調用getframe函數生成每個幀。該函數返回一個列矢量,利用這個矢量,就可以創建一個電影動畫矩陣。
getframe函數可以捕捉動畫幀,并保存到矩陣中。一般將該函數放到for循環中得到一系列的動畫幀。
該函數格式有:
(1)F=gefframe,從當前圖形框中得到動畫幀
(2)F=gefframe(h),從圖形句柄h中得到動畫幀
(3)F=getframe(h,rect),從圖形句柄h的指定區域rec中得到動畫幀
step3:調用movie函數按照指定的速度和次數運行該電影動畫。
當創建了一系列的動畫幀后,可以利用movie函數播放這些動畫幀。
該函數的主要格式有:
(1)movie(M),將矩陣M中的動畫幀播放一次
(2)movie(M,n),將矩陣M中的動畫幀播放n次
(3)movie(M,n,fps),將矩陣M中的動畫幀以每秒fps幀的速度播放n次
step4:調用movie2avi函數可以將矩陣中的一系列動畫幀轉換成視頻文件avi文件。這樣,即使脫離了matlab環境都可以播放動畫。
具體參見:
該方法的經典格式是:
?????? for j=1:n
????????? %
????????? %這里輸入我們的繪圖命令
????????? %
????????? M(j) = getframe;
?????? end
?????? movie(M)
%單幀顯示方法
?????? f = getframe(gcf);
?????? colormap(f.colormap);
?????? image(f.cdata);
MATLAB中,創建電影動畫的過程分為以下四步:
step1:調用moviein函數對內存進行初始化(該步驟在Matlab5.3以上均可省略),創建一個足夠大的矩陣,使之能夠容納基于當前坐標軸大小的一系列指定的圖形(此處稱為幀)。
step2:調用getframe函數生成每個幀。該函數返回一個列矢量,利用這個矢量,就可以創建一個電影動畫矩陣。
getframe函數可以捕捉動畫幀,并保存到矩陣中。一般將該函數放到for循環中得到一系列的動畫幀。
該函數格式有:
(1)F=gefframe,從當前圖形框中得到動畫幀
(2)F=gefframe(h),從圖形句柄h中得到動畫幀
(3)F=getframe(h,rect),從圖形句柄h的指定區域rec中得到動畫幀
step3:調用movie函數按照指定的速度和次數運行該電影動畫。
當創建了一系列的動畫幀后,可以利用movie函數播放這些動畫幀。
該函數的主要格式有:
(1)movie(M),將矩陣M中的動畫幀播放一次
(2)movie(M,n),將矩陣M中的動畫幀播放n次
(3)movie(M,n,fps),將矩陣M中的動畫幀以每秒fps幀的速度播放n次
step4:調用movie2avi函數可以將矩陣中的一系列動畫幀轉換成視頻文件avi文件。這樣,即使脫離了matlab環境都可以播放動畫。
具體參見:
該方法的經典格式是:
%-----------------------------------------------
%錄制電影動畫?????? for j=1:n
????????? %
????????? %這里輸入我們的繪圖命令
????????? %
????????? M(j) = getframe;
?????? end
?????? movie(M)
%單幀顯示方法
?????? f = getframe(gcf);
?????? colormap(f.colormap);
?????? image(f.cdata);
%------------------------------------------------
?
此外,利用immovie函數,我們可以從多幀圖像陣列中創建MATALB 電影動畫。