0

我只能找到一个参考解释如何使用Fellow Oak 库获取 Hounsfield 值,该库说它是由公式确定的

Hounsfield units = (Rescale Slope * Pixel Value) + Rescale Intercept

此公式中的“像素值”是否高于由PixelDataFactory 中的Create 方法产生的IPixelData数据?

对于我使用 DicomPixelData 的 MONOCHROME2 图像数据集,BitsAllocated=16 BitsDepth.BitStored=16。PixelDataFactor.Create 方法返回GrayscalePixelData16S IPixelData 和所有图像范围内的数据(使用MinMax())-2048 和 1013)。我使用以下命令生成此 IPixelData.Data:

var dicomFile = DicomFile.Open(string.Concat(path, "/", file.Name));
DicomPixelData pixelData = DicomPixelData.Create(dicomFile.Dataset, false);
var pixelDataRender = PixelDataFactory.Create(pixelData, 0);

对于我正在使用的 95 个轴向图像,Rescale Intercept=0 和 Rescale Slope=1,所以在我的情况下,Hounsfield 单位将是stackoverflow post中显示的公式中的“像素值”输入。

我可以找到的参考资料说 Hounsfield 值范围 -1024 HU 到 3071 HU,这是否意味着生成的 IPixelData 数据不是 Hounsfield 值?最终,我怎样才能使用同胞橡树库获得 Hounsfield 场?

4

1 回答 1

0

如果它对任何人有帮助,我认为 GrayscalePixelData16S 数据是正确的。事实上,图像可以正确查看。我没有考虑转换 16 位数据来选择要显示的数据。所以我改变了方法 - 而不是将原始像素数据作为 hounsfield 值,在我使用的数据的情况下,我应用了窗口中心和宽度的默认线性函数作为达到 hounsfield 值的一种方式,这意味着我改变了窗口宽度/center 目标 houndsfield 值

如果 VOI LUT 函数 (0028,1056) 不存在或值为 LINEAR,则窗口中心 (0028,1050) 和窗口宽度 (0028,1051) 指定存储像素值的线性转换(在任何模态 LUT 或重新缩放斜率和IOD 中指定的截距已应用于要显示的值。

于 2022-02-17T06:04:28.497 回答