参考自:
https://blog.csdn.net/qq_38784098/article/details/82144461
https://blog.csdn.net/normol/article/details/88316422
关于CT值(HU) 与 图像的灰度值
其实无论对于dcm还是nii格式的图片,只要是ct图,就都可以选择将储存的原始数据转化为Hu值,
因为Hu值即代表了物体真正的密度。
对于nii格式的图片,经过测试,nibabel, simpleitk常用的api接口,都会自动的进行上述转化过程,
即取出来的值已经是Hu了。 ( PS: 除非专门用nib.load('xx').dataobj.get_unscaled()
或者itk.ReadImage('xx').GetPixel(x,y,z)才能取得原始数据 )
NIFTI格式的解析 :
https://www.cnblogs.com/gywei/archive/2013/10/29/3393816.html
总结: 说了半天, 就是如果你使用 nibabel 这个package来解决 nii 格式的文件问题。
它的输出就是 HU , 我也证明过了,的确是这样。
但是图像处理是要处理像素值的,不能处理CT值呀,----》 所以下一步该怎么办呢。。也是我尚待解决的一个问题
CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071。用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu。
在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这个范围,通常是0-4096,(即 L = 2^10),
这是因为DICOM图像输出的就是像素值, 我们常见到的像素值或者灰度值,
这就需要我们在图像像素值(灰度值)转换为CT值。 (ps: 这里让我很困惑,这是为什么呢?)
DICOM图像像素值(灰度值)转换为CT值
首先,需要读取两个DICOM Tag信息,(0028|1052):rescale intercept和(0028|1053):rescale slope.
然后通过公式:
Hu = pixel * slope + intercept
计算得到CT值。