C# 如何使用c语言中的Dicom库获取Dicom文件中的Hounsfield单位#

C# 如何使用c语言中的Dicom库获取Dicom文件中的Hounsfield单位#,c#,dicom,fo-dicom,C#,Dicom,Fo Dicom,当我使用oak Dicom从Dicom.imaging.DicomImage.RenderImage()获取Drawing.image时,该图像只有RGB值,但我需要hounsfield单位 如何获得霍恩斯菲尔德部队?我需要一个示例代码plz。谢谢。如果您有CT图像,那么有一种标准方法可以将像素值转换为Hounsfield单位 首先,我要提醒你几句 首先,通常情况下,CT图像应该包含灰度像素值,这就是您想要使用的。通过检查光度学解释(00280004)标记,可以识别存储的像素值类型。希望它是“单

当我使用oak Dicom从Dicom.imaging.DicomImage.RenderImage()获取Drawing.image时,该图像只有RGB值,但我需要hounsfield单位


如何获得霍恩斯菲尔德部队?我需要一个示例代码plz。谢谢。

如果您有CT图像,那么有一种标准方法可以将像素值转换为Hounsfield单位

首先,我要提醒你几句

首先,通常情况下,CT图像应该包含灰度像素值,这就是您想要使用的。通过检查光度学解释(00280004)标记,可以识别存储的像素值类型。希望它是“单色2”,并且您的图像包含灰度像素值。(在不太可能的情况下,光度学解释是“单色1”,请检查图像源,看看是否可以得到“单色2”。)如果看到RGB值,可能是工具包中的某些东西正在转换它们(可能是为了显示),而这不是您想要的。您希望使用像素数据(7FE00010)中实际存储的像素

其次,我所说的一切都与传统的CT图像信息对象(IOD)有关。如果您有增强CT图像,细节可能会改变。如果您有一个二次捕获映像,则所有赌注都将被取消

对于CT图像,使用值重缩放斜率(00281053)和重缩放截距(00281052),可以将存储的像素值线性转换为Hounsfield单位:

(注意:其他类型的图像可以有一个查找表来代替此公式的等效值。对于CT,您不必担心这一点。)


希望这能有所帮助。

你所有的话都有道理,但这就好像你在说一种不同的语言。我想这只是因为我不熟悉Dicom和Hounsfield单位,但我不能完全肯定你不是机器人。不,绝对不是。我找到了这个网站,但我不知道如何找到霍恩斯菲尔德。有人能解释一下或者给出一个示例代码吗?我有一张CT图像(单色)。我的图像元数据中没有“重缩放坡度”和“重缩放截距”值。在这种情况下,我如何计算胡?你可能运气不好。查看元数据是否包含SOP类UID(00080016)。如果是这样,那么它是1.2.840.10008.5.1.4.1.1.2,那么您有一个传统的CT图像,并且根据权利,它应该具有重缩放值。如果它是1.2.840.10008.5.1.4.1.1.2.1,则您有一个增强CT图像,该图像也应该具有重缩放值,但您需要查看其他位置。如果它是1.2.840.10008.5.1.4.1.1.7,那么您有一个二级捕获映像,它实际上只是一张图片,没有您需要的元数据。
Hounsfield units = (Rescale Slope * Pixel Value) + Rescale Intercept