2011-06-26 65 views
4

我有一個10乘10矩陣(按名稱數據)。我試圖生成一個圖像:如何從矩陣(使用浮點條目)生成圖像

figure; 
(data); 
colormap(gray); 

保存的圖像是560 * 420。我怎樣才能生成一個10乘10的圖像?

另外我想知道它是如何工作的。它是否首先將矩陣的-ve條目設置爲0,條目> 1至1,然後將所有條目乘以255(如imwrite())?

MATLAB中是否有任何其他函數直接從浮動值轉換(不轉換爲RGB,0 < =值< = 1)以生成圖像?

回答

2

可能是你能找到「圖像處理matlab工具箱」相關"image"功能,你想要做

什麼正如你可以看到通過運行簡單的像

image(C) 
則可以說明矩陣C,

關於你的第二個問題調整圖片,有

imresize(C) 
B = imresize(A, [numrows numcols]) 

its參數顯示如何it作品,

關於它描繪任何矩陣的方式,Image可以是索引或真實的顏色。索引圖像將顏色作爲索引數組存儲到圖色彩圖中。相反,每個像素的顏色值直接存儲爲RGB三元組(R,G,B)。因此,任何圖像都可以稱爲(m×n×3)陣列。該數組由三個m×n矩陣組成(代表紅色,綠色和藍色平面)。

我相信學習MATLAB最好的辦法是要通過它的幫助,並繼其「入門」

+0

我對接下來的時間,你可以在時間安排您的問題,並要求1,那麼回答將是其他用戶更容易 – user702846

5

我敢肯定,這已被問過,但我不能找到重複。您可以使用imagesc函數將矩陣顯示爲圖像。所以你上面的代碼應改爲:

figure; 
imagesc(data); 
colormap(gray); 

顏色縮放比例由caxis,這需要參數作爲caxis([cmin, cmax])控制。從文檔:

caxis([cmin cmax])將顏色限制設置爲指定的最小值和最大值。小於cmin或大於cmax的數據值分別映射到cmincmaxcmincmax之間的值線性映射到當前顏色映射。

因此,在這種情況下,最低值(如果您沒有設置一個caxis)將被映射到灰色顏色表(白色)和最高值最低的顏色將設置爲黑色。要查看設置灰度色彩映射時使用的RGB值,請將其分配給一個變量並查看這些值(或繪製它)。

gray=colormap('gray'); 

此外,通過文檔閱讀colormap