我想在MATLAB中讀取圖像並將其轉換爲索引圖像Matlab的:加載索引圖像
這裏是我的代碼:
[I map] = imread('image.tif');
I = rgb2ind(I, map);
figure(1);
imagesc(I);axis('equal');
當我剛讀出的圖像,它看起來不錯(但它是一個RGB圖像)。然後我將它轉換爲索引圖像,我有以下圖片:
這段代碼有什麼問題?
我想在MATLAB中讀取圖像並將其轉換爲索引圖像Matlab的:加載索引圖像
這裏是我的代碼:
[I map] = imread('image.tif');
I = rgb2ind(I, map);
figure(1);
imagesc(I);axis('equal');
當我剛讀出的圖像,它看起來不錯(但它是一個RGB圖像)。然後我將它轉換爲索引圖像,我有以下圖片:
這段代碼有什麼問題?
你的輸出結果是誤用了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)
你的語法略微偏離。這應該工作:
[I, map] = imread('autumn.tif');
[I, map] = rgb2ind(I, map);
figure(1);
image(I);
colormap(map);
axis('equal');
請參閱文檔rgb2ind。
什麼不好的形象呢? – Dan
這不是原始圖像。原始圖像是一個人的圖片。 – user2738748
這是相當重要的信息的問題。你應該添加原始圖像。 – Dan