【问题标题】:convert double to 12 bit using matlab使用matlab将double转换为12位
【发布时间】:2011-10-05 19:00:00
【问题描述】:

我正在尝试从 matlab 中名为 metamorph 的成像软件实现颜色组合功能。我有三个 uint16 位文件(R、G 和 B)。我需要将它们转换为 12 位,然后将它们组合成 RGB 图像.metamorph 将 16 位文件转换为 12 位,然后从三个 12 位文件创建 RGB 图像。我的代码如下。我不太清楚如何将 16 位图像文件转换为 12 -位。

    C1 = imread('metamorph/R.tif',3);
    C2 = imread('metamorph/G.tif',3);
    C3 = imread('metamorph/B.tif',3);

    R=mat2gray(C1);
    G=mat2gray(C2);
    B=mat2gray(C3);

    rgb1=cat(3,R,G,B);
    imshow(rgb1)

非常感谢任何帮助。

谢谢

【问题讨论】:

  • 我会将 12 位图像转换为 RGB。
  • 我正在尝试从 matlab 中名为 metamorph 的成像软件实现颜色组合功能。我有三个 uint16 位文件(R、G 和 B)。我需要将它们转换为 12 位然后组合将它们转换为 RGB 图像。metamorph 将 16 位文件转换为 12 位,然后从三个 12 位文件创建 RGB 图像。希望这更清楚。
  • 请注意您的问题有一个“编辑”链接;使用它将您的新信息添加到问题中,使其更加明显。
  • @user970044:如链接问题所示,使用以下命令从 16bit 转换为 12bit:rgb12 = bitshift(rgb16,-4);

标签: matlab


【解决方案1】:

我认为 MATLAB 没有 12 位的数据类型(即每个颜色每个像素一个半字节)。当然,您可以缩放双倍数据以适应 12 位整数:

rgb12= round(rgb1/max(rgb1(:))*(2^12-1)); %# scale & round image values to 12 bit

...但真正的问题是这样做有什么好处:

  • 您想导出一些 12 位 RGB 文件格式吗? imwrite 显然可以做 12 位 JPEG,但我不确定这是否是每种颜色 12 位。
  • 或者您想在 MATLAB 中节省 RAM?在这种情况下,我不确定是否有明智的方法来做到这一点。

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 2023-04-01
    • 2016-10-10
    • 1970-01-01
    • 2014-02-08
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多