Re: [心得] 把處理過程轉成 GIF 動畫圖檔方式已回收

看板MATLAB作者 (tonit)時間16年前 (2008/12/06 15:12), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串2/2 (看更多)
這是一份很棒的參考文件 在下有個問題想請教 如果我們是用 `contour', `plot'等指令得到 gcf 也就是這個圖的 graphic object handle 要怎麼把他轉成 W*H*3 的矩陣 也就是 rgb2ind 可以接受的參數? 謝謝 !! 注一 一個暴力解決的方法 就是先把 gcf 寫到一個檔案 再把那個檔案讀出來 -> W*H*3 的矩陣 但是我有很多個這樣的流程 這樣執行效率不怎麼好 :( ※ 引述《icools (icools)》之銘言: : 大家知道利用pause可以查看影像處理過程 : 不過如果想把它存成圖檔供後作ppt or demo 時候用就不太適合了 : 我只是要存成gif 的動畫圖檔 ,剛找了一下這個版討論都是 avi (當然avi色彩範圍比較大) : 所以如果有需要存成 gif 的可以參考 : close all;clc ; : disp('start....'); : I = imread('srcImage.png'); %讀入你要的圖 : se = strel('disk',3); : figure(1);imshow(I); %不一定需要 : [X,Map] = rgb2ind(I,256); %將圖檔轉成 index 圖檔 (gif需要) : %第一次必須使用 overwrite 的 writemode ,才會產生新圖檔或者蓋掉之前frame) : imwrite(X, Map, 'c:\test.gif', 'GIF', 'WriteMode', 'overwrite', 'DelayTime', : 0, 'LoopCount', Inf ); : for i = 1:4 % 任何一個 loop : I = imerode(I,se); % 經過影像處理 : [X,Map] = rgb2ind(I,256); % 一樣轉成 index : %在 loop內 的writemode 須改為 append ,這時候frame才會不斷的增加進去 : imwrite(X,Map,'c:\test.gif','GIF','WriteMode','append','DelayTime',0); : end : disp('done'); %ok -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.32

12/06 20:11, , 1F
我通常getframe 直接輸出GIF或AVI
12/06 20:11, 1F

12/06 20:35, , 2F
謝謝 ! getframe 在有 xwindows的情況下 可以解決 ^^
12/06 20:35, 2F

12/11 14:33, , 3F
M=getframe(h);
12/11 14:33, 3F

12/11 14:33, , 4F
[data,map] = rgb2ind(M.cdata,256);
12/11 14:33, 4F

02/26 17:10, , 5F
請問如何直接從getframe輸出gif檔?
02/26 17:10, 5F
文章代碼(AID): #19EYNH89 (MATLAB)
文章代碼(AID): #19EYNH89 (MATLAB)