2013-05-06 166 views
0

對於一些編碼,我想做到以下幾點:Matlab的:加載的.tif>轉換BMP 256>轉換BMP 24位

  • 讀.tif文件
  • 外匯牌價,256髮色爲.bmp(得到這個油漆,無法找到它在MATLAB!)
  • 轉換爲24位(正常轉換爲.bmp爲.bmp爲24位,這工作)

的問題是一步之內2.我需要這一步,因爲它降低了圖像質量,並因此降低了圖像質量使節段顏色不太先進。有了這個部分將具有相同的價值,而不是用眼睛看不到的4種深藍色。

在轉換happends部分代碼:

%Reads image 
[XX,map] = imread('Test_Script.tif'); 

%Convert to 256 bmp? 

%Write image first if needed 
%imwrite() 
%Read new image 
%[ZZ,map] = imread() 

%Converts to rgb 8-bit 
YY=ind2rgb8(XX,map); 

%writes image 
imwrite(YY, map, 'Test_Script_new.bmp','bmp'); 

嗯,我無法弄清楚,也許你有一個想法?

回答

0

嘗試以下操作:

[img,map] = imread('canoe.tif'); 
rgb = im2uint8(ind2rgb(img,map)); 

%imshow(img,map) 
%imshow(rgb) 

imwrite(img, map, '8bpp.bmp', 'bmp') 
imwrite(rgb, '24bpp.bmp', 'bmp') 
+0

???索引超過矩陣尺寸。 錯誤==> ind2rgb at 27 r = zeros(size(a)); r(:) = cm(a,1); – user2354586 2013-05-07 07:49:55

+0

對不起,它工作,錯誤的輸入文件。 不幸的是,它不起作用。它確實進行了轉換,但它並不像油漆那樣降低圖像質量。因此,它不等於幾乎可能的顏色爲1種顏色。 另一種選擇是打開油漆(工作),並使用matlab控制油漆。這可能嗎? – user2354586 2013-05-07 07:53:26

+0

找到解決方法。 你給的代碼是一個很好的補充,否則它可能沒有工作。 我找到了另一種方式將我的文件導出爲.tif,其中沒有陰影,因此不需要通過繪製進行轉換。謝謝 – user2354586 2013-05-07 13:29:46