2013-05-06 168 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