dcm|dicm是医学图像常见格式(IMA可看作dicm同类型的格式[1]),是直接能从机器上获得的图像格式,但是如果使用深度神经网络进行处理和其他操作需要对原始的图像格式进行处理才能够使用。
首先对于CT图像需要明确的是我们从机器上获得的是X ray穿过物体后投影在探测器上,探测器接收的数据是投影的数值(projection data-->sinogram(projection image) 这个过程也要进行数值转换,如取对数等操作).
dicm应该是对投影后数据前处理完毕进行重建后的图像,但是图像的像素值并不一定以Hu为单位(应该跟厂家有关,比如IMA是西门子CT设备产生的图像,不是HU单位),因此要查看dicm文件的文件头信息确认像素值的单位,如果不是HU需要处理[2]。
对于IMA文件第一步转换为HU格式,第二步进行调窗,第三步可根据情况缩放范围自行选择处理或者不处理送给神经网络或者其他操作。
(1)转换为HU格式:[3,4]中大致讲清楚了转换的方法,但是实现对于我想使用单张图像转换不太好用,因此参考代码有如下改动。
def getCtHU(dicm):
'''直接传入dicm文件/IMA文件'''
img=np.array(dicm.pixel_array).astype('int32')
img[img == -2000.0] = 0
Hu = np.array(img).astype('float64')
RescaleIntercept = dicm.RescaleIntercept
RescaleSlope = dicm.R