gpt4 book ai didi

dicom - 了解 DICOM 图像中的 BPP

转载 作者:行者123 更新时间:2023-12-05 00:20:10 25 4
gpt4 key购买 nike

几天以来,我一直在使用 FO-DICOM 处理 DICOM 文件。

我正在使用一组 dicom 文件进行测试,并且我一直在打印“光度解释”和“每像素样本”值,以便更好地了解我正在处理的图像类型。

结果是光度解释为“MONOCHROME2”,每像素样本为“1”。

通过阅读标准的第 3 部分,我了解到 MONOCHROME2 代表灰度,从黑色开始为其最小值。

但是每个像素的样本究竟是什么?我以为这代表 的数量字节 (而不是位)每个像素(这将是逻辑有 8 每个像素的灰度等级对吗?)

但我的问题是,实际上,我的图像似乎有 32 bpp。
我正在处理 512*512 像素的图像,并将它们转换为字节数组。所以我期待 512*512=262144 字节的数组。
但我得到了 1048630 字节的数组(比 4*262144 多一点)

有人有解释吗?

编辑:

这是我的一些数据:

PhotometricInterpretation=MONOCHROME2
SamplePerPixel=1
BitsAllocated=16
BitsStored=12
HighBit=11
PixelRepresentation=0
NumberOfFrames=0

最佳答案

属性 (0028,0002) SamplesPerPixel仅指彩色图像,并告诉您图像中存在的平面数(例如 RGB 为 3),因此您有

PhotometricInterpretation=RGB
SamplesPerPixel=3

每像素 8 位(我将在下面重新讨论 BPP)。只要你有 PhotometricInterpretation = MONOCHROME1 或 MONOCHROME2,您可以期待 SamplesPerPixel为 1,仅此而已。

您必须考虑的是每个像素的位数:
BitsAllocated (0028,0100)
BitsStored (0028,0101)
HighBit (0028,0102)

这些告诉您使用多少位来编码像素值( BitsAllocated )以及这些位中的哪些位真正包含灰度信息( BitsStoredHighBit )。 HighBit是从零开始的,通常但不一定 = BitsStored-1
一个例子来说明这一点:对于 CT 图像,以 hounsfield 单位表示灰度值是很常见的,范围从 -1000 到 +3000。这些由 12 位表示,它们以 2 字节对齐方式存储,因此
BitsAllocated (0028,0100) = 16
BitsStored (0028,0101) = 12
HighBit (0028,0102) = 11

另一个自由度是 PixelRepresentation它告诉您像素数据是无符号编码 (0) 还是 2s 补码 (1)。我在 CT 图像中都看到过,但是对于 CT 以外的图像类型,带符号的像素数据是相当不寻常的。

在您的示例中,我假设分配的位 == 32 或(不太可能)您有一个包含多个图像(“帧”)的数据集,所以 NumberOfFrames (0028,0008) > 1. 如果没有帧数,您可以放心地假设只有一帧。

我在这里过度简化了一点,尤其是关于彩色图像,但我认为这已经足够复杂了;-)。基本上,DICOM 提供了任何可以想象的自由度来编码像素数据并描述 header 中的编码。

我想我已经建议您在最近的一篇文章中查看 DCMTK。 DicomImage 类具有一个很好的接口(interface)( getInterData()),它关心所有这些东西,并以标准化格式提供从 DICOM 文件中读取的像素数据。

[编辑]:随意在此处发布您的数据集的 DICOM 转储,我会看一下并告诉您如何解释像素数据。

关于dicom - 了解 DICOM 图像中的 BPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054609/

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