【问题标题】:Save uint16 tiff image as truecolor with Matlab使用 Matlab 将 uint16 tiff 图像保存为真彩色
【发布时间】:2014-09-28 13:56:23
【问题描述】:

我正在处理 tiff 格式的显微镜图像(在 Matlab 中),通常是 uint8 或 uint16。基本上我读取它们,将它们放入一个单元格数组中进行处理,然后以 tiff 格式将它们导出为图像序列或堆栈(分别使用 imwrite 和 imwrite 的“覆盖”或“附加”写入模式属性)。到目前为止,一切运行良好。

我遇到的问题如下:

当我用 ImageJ 打开图像时,它们不是真彩色“RGB”颜色模式,而是复合模式。例如,ImageJ 将数据读取为 8 位,但它不会将图像打开为真彩色(对不起,我不知道正确的术语选择了错误的词)。因此,我必须手动将 3 个通道组合在一起,这对于大型数据集来说很麻烦。

这是解释的屏幕截图。左边是我想要的,即如果我直接用ImageJ打开图像我得到了什么,右边是我现在用Matlab保存图像并用ImageJ打开它们后得到的,我不想要。

我用来导出图像序列的代码如下。 "FinalSequenceToExport" 是包含图像的元胞数组。

for i = 1:SliceNumber
    ExportedName = sprintf('%s%s%d.tiff',fileName,'Z',i);
  imwrite(FinalSequenceToExport{i},ExportedName,'tif','WriteMode','overwrite','Compression','none');

end
  • 如果我向 Matlab 询问 FinalSequenceToExport{1} 的大小,例如,它给出 512 x 512 x 3。
  • 如果我在命令窗口中打开给定的图像,然后使用与上面相同的代码保存它,它会执行我想要的操作,并且生成的图像会在 ImageJ 中按我想要的方式打开。因此我的猜测是问题出在单元格数组的使用上,但我不明白如何。

我希望我已经足够清楚了。如果没有,请询​​问更多详细信息。 感谢您的帮助!

【问题讨论】:

  • 您能否在某处上传一张错误图片示例。或者也许用虚拟数据创建它? (RGB = uint8(rand(20,30,3)*100)) 并确认图像 j 将其视为非标准 RGB 图像?在我的机器上 imwrite(uint8(rand(10,10,3)),'/tmp/t','tif','WriteMode','overwrite','Compression','none');导致 ImageJ 像普通 RGB 一样读取它。 while imwrite(uint16(rand(10,10,3)),'/tmp/t','tif','WriteMode','overwrite','Compression','none');结果是您似乎在谈论的三个切片视图。
  • 感谢您的快速回复!是的,如果我添加 imwrite(uint8(FinalSequenceToExport{i}),...),它会起作用。但是图像非常饱和,这可能是因为我在导入数据时使用了 imadjust 。谢谢!你可以发布一个答案,如果你愿意,我可以接受。
  • 当我做 Ashish 所做的事情 ("imwrite(uint16(...")位”)。所以有些东西可能仍然不同。但是我想只保存 uint8 可以绕过整个事情。ImageJ 似乎只将 RGB 处理为 8 位 color images
  • 感谢@Trilarion 的链接/评论,我会调查的!

标签: image matlab export tiff


【解决方案1】:

你需要指定'ColorSpace'

试试这个

imwrite(FinalSequenceToExport{i},ExportedName,...
       'tif','WriteMode','overwrite','Compression','none', ...
       'ColorSpace', 'rgb');

【讨论】:

  • 感谢您的提示!但是,它会产生与以前相同的结果。
【解决方案2】:

在重新审视这个问题后,我发现以下方法可行,这要感谢@Ashish 的提示:

imwrite(uint8(FinalSequenceToExport{i}/255),...);

我只需要在转换为 uint8 后除以 255。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2016-11-25
    • 2019-10-16
    • 1970-01-01
    • 2016-11-25
    • 2011-07-10
    相关资源
    最近更新 更多