在经过深度学习的神经网络框架后的.npy文件很多时候需要转换为.dcm文件导入到商用的医学图像处理软件中
因为dicom文件很多tag信息,这些tag信息繁多且不易处理
最简单的方式就是直接将.npy文件直接替代原始dicom的灰度信息,再保存,具体代码如下:
import numpy as np
import os
import pydicom
#dicom路径
dicom_file = r'E:\dataset\temp_delete\dcm\0.dcm'
#npy路径
npy_file = r'E:\dataset\temp_delete\npy\0.npy'
#将读取的npy数组赋值给dicom文件
def write_dicom(dicom_file, npy_file):
#读取dicom文件
ds = pydicom.dcmread(dicom_file, force=True)
npy = np.load(npy_file).astype(np.uint16)
#将npy数组赋值给dicom文件
ds.PixelData = npy.tobytes()
dicom_new_file = dicom_file.split('.')[0] + '_new' + '.dcm'
print(dicom_new_file)
#保存dicom文件
ds.save_as(dicom_new_file)
write_dicom(dicom_file, npy_file)
这是一幅断层图像的转换方法,一组图像或一组患者的可以自己添加一个批处理就好了。
如果需要转换其他格式的医学图像信息,可以选择类似的方法进行