Dicom图像值与HU值

HU(Hounsfiled Unit)值,反映了组织对X射线吸收程度。以水的吸收程度作为参考,即水的HU=0,衰减系数大于水的为正直,小于水的为负值。并以骨皮质和空气的HU值为上限和下限。

最近遇到了一个问题,为了站在医生的角度看问题,所以必须将dcm图像的值转换为HU值。在网上也搜了一些帖子,大家都提到了一个公式:
HU = pixel_val * slope + intercept

import dicom
import numpy as np
import SimpleITK as sitk

dcm_path = '图片路径'
img = dicom.read_file(dcm_path)
img_array = sitk.GetArrayFromImage(sitk.ReadImage(dcm_path))
HU = np.dot(img_array, img.RescaleSlope) + img.RescaleIntercept

但是,这里会有一个问题,有的图像就已经是CT值(HU值),该图像的Solpe=1,Intercept=0,如果按照上面的公式计算,就还是图像的值;而有的图像则是像素值,所以需要转化,该图像的Sople=1, Intercept=-1024(这是我用LUNA数据得出的结果)。

如有错误,欢迎指正

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容