2015-09-25 80 views
-1

我想在MATLAB中讀取圖像並將其轉換爲索引圖像Matlab的:加載索引圖像

這裏是我的代碼:

[I map] = imread('image.tif'); 
I = rgb2ind(I, map); 

figure(1); 
imagesc(I);axis('equal'); 

當我剛讀出的圖像,它看起來不錯(但它是一個RGB圖像)。然後我將它轉換爲索引圖像,我有以下圖片: enter image description here

這段代碼有什麼問題?

+0

什麼不好的形象呢? – Dan

+0

這不是原始圖像。原始圖像是一個人的圖片。 – user2738748

+0

這是相當重要的信息的問題。你應該添加原始圖像。 – Dan

回答

1

你的輸出結果是誤用了matlab函數。

%read a non-indexed image. I is your RGB image, map is empty 
[I,map] = imread('board.tif'); 
%rgb2ind has two output arguments, get both, otherwise your unchanged code 
[I2,map2] = rgb2ind(I, map); 
%Now I2 is a indexed image and map2 the corresponding map 

現在你沒有應用的顏色表顯示的索引圖像I2:

imagesc(I2) 

您的圖片包含值1:n和顏色表jet被激活,所以你得到的彩虹。

可能性,以顯示正確的圖像是使用地圖:

imagesc(I2) 
colormap(map2) 

或顯示我,這是原始RGB圖像

imagesc(I) 
2

你的語法略微偏離。這應該工作:

[I, map] = imread('autumn.tif'); 
[I, map] = rgb2ind(I, map); 

figure(1); 
image(I); 
colormap(map); 
axis('equal'); 

請參閱文檔rgb2ind