gpt4 book ai didi

image - 使用 Matlab 将 uint16 tiff 图像保存为真彩色

转载 作者:行者123 更新时间:2023-12-04 22:47:01 25 4
gpt4 key购买 nike

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

我遇到的问题如下:

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

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

enter image description here

我用来导出图像序列的代码如下。 “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 中打开。因此,我的猜测是问题是由元胞数组的使用引起的,但我不明白这是怎么回事。

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

最佳答案

您需要指定 'ColorSpace'

试试这个

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

关于image - 使用 Matlab 将 uint16 tiff 图像保存为真彩色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com