【问题标题】:Matlab: Load .tif > convert bmp 256 > convert bmp 24-bitMatlab:加载 .tif > 转换 bmp 256 > 转换 bmp 24 位
【发布时间】:2013-05-06 12:31:02
【问题描述】:

对于一些编码,我想做以下事情:

  • 读取 .tif 文件
  • 转换为 256 色的 .bmp(从绘图中获得,在 matlab 中找不到!)
  • 使用 24 位转换为 .bmp(正常转换为 .bmp 是 24 位,这可行)

问题出在第 2 步内。我需要这一步,因为它会降低图像质量,从而使部分颜色不那么高级。有了这个,一个部分将具有与它应该相同的值,而不是 4 种类型的深蓝色,你不能用肉眼看到。

发生转换的部分代码:

%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');

嗯,我想不通,也许你有一个想法?

【问题讨论】:

    标签: image matlab bmp 24-bit 256color


    【解决方案1】:

    尝试以下方法:

    [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')
    

    【讨论】:

    • ???索引超出矩阵维度。 ==> ind2rgb 在 27 时出现错误 r = zeros(size(a)); r(:) = cm(a,1);
    • 对不起,它成功了,输入文件错误。不幸的是,它不起作用。它确实会进行转换,但不会像绘画那样降低图像质量。因此,它几乎不等于一种颜色。另一种选择是打开绘画(有效)并使用matlab控制绘画。这可能吗?
    • 找到了一种解决方法。您提供的代码很好地补充了这一点,否则它可能无法正常工作。我找到了另一种将我的文件导出到 .tif 的方法,它没有阴影,因此不需要通过绘制进行转换。谢谢
    • @user2354586:我不确定我是否明白问题所在,但我很高兴能提供帮助。
    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多