概述
首先, 我们要理解, CT值和灰度值这两者根本就不是同一个东西, 不要被一些网络上的文章所误解。
接下来, 就要看你具体是要处理哪种格式的文件了, 是DICOM 还是 NIFTI ; 文件格式不同 , 用来做解析的Python 库也就不同,
譬如,要处理DICOM类型的数据, 一般会用 simpleitk, pydicom 库 ;
而 NIFTI类型的数据更多使用 Nibabel 库, 或者是 simpleitk 也是可以的。
https://blog.csdn.net/normol/article/details/88313888
其实无论对于dcm还是nii格式的图片,只要是ct图,就都可以选择将储存的原始数据转化为Hu值,因为Hu值即代表了物体真正的密度。
对于nii格式的图片,经过测试,nibabel, simpleitk常用的api接口,都会自动的进行上述转化过程,即取出来的值已经是Hu了。
(除非专门用nib.load('xx').dataobj.get_unscaled()或者itk.ReadImage('xx').GetPixel(x,y,z)才能取得原始数据)
对于dcm格式的图片,经过测试,simpleitk, pydicom常用的api接口都不会将原始数据自动转化为Hu!!(itk snap软件读入dcm或nii都不会对数据进行scale操作)
下面就以我使用的 NIFTI 格式的文件以及 Nibabel 库为例: