2015-05-06 49 views
0

我有一個已保存的matlab .fig文件,它有一個圖像,我用openfig打開圖形。我在問我如何將數字值複製到矩陣中(讓我們說img這是480x640 double)開始對它進行一些處理。如果有人可以請指教。將打開的圖形的值複製到Matrix Matrix中

+0

什麼是完全'圖values'? – scmg

+0

@scmg問題更新與無花果文件 – Tak

回答

4

很簡單。假設你有你的身影開放,首先你需要確保你有一個手柄,目前的數字,所以執行:

h = gcf; 

即在圖中繪製的數據通常是axes對象的孩子。軸對象本身就是圖形的一個子對象,所以在獲得所需內容之前,您需要訪問一系列分層成員。因此,您需要獲取axes手柄,然後獲取axes手柄的子代 繪製的數據通常是Axes對象的「子」。軸對象本身就是數字的孩子。您可以按如下下去他們的層次:

axesObjs = get(h, 'Children'); %axes handles 
dataObjs = get(axesObjs, 'Children'); %handles to low-level graphics objects in axes 

打開你的身影,我看到您的數據Image類型。爲了訪問Image數據,您要訪問的CData領域,所以你需要做到這一點:

data = get(dataObjs, 'CData'); 

data現在應該包含您的圖像數據。因此,這裏是完整的代碼,這樣你就可以複製並粘貼到MATLAB:

openfig('input.fig') 
h = gcf; 
axesObjs = get(h, 'Children'); 
dataObjs = get(axesObjs, 'Children'); 
data = get(dataObjs, 'CData'); 

以上工作到MATLAB R2013b。如果您在使用MATLAB R2014a和起來,點符號是什麼,是用來代替get功能,所以:

openfig('input.fig') 
h = gcf; 
axesObjs = h.Children; 
dataObjs = axesObjs.Children; 
data = dataObjs.CData; 
+0

非常感謝你:) – Tak

+0

@shepherd - 沒有問題。 – rayryeng

+0

你知道如何將圖像設置爲'colormap(jet)',其中只考慮非零值,以便顏色條正確嗎? – Tak