python读取dicom图像(SimpleITK和dicom包实现)_愿十四亿神州尽舜尧-CSDN博客_python读取dicom
1. 用SimpleITK读取dicom序列:
import SimpleITK as sitkimport numpy as npimg_path='F:\\dataset\\pancreas\\Output\\thick\\original\\1'mask_path='F:\\dataset\\pancreas\\Output\\thick\\groundtruth\\1'reader = sitk.ImageSeriesReader()img_names = reader.GetGDCMSeriesFileNames(img_path)reader.SetFileNames(img_names)image = reader.Execute()image_array = sitk.GetArrayFromImage(image) # z, y, xreader = sitk.ImageSeriesReader()mask_names = reader.GetGDCMSeriesFileNames(mask_path)reader.SetFileNames(mask_names)mask = reader.Execute()mask_array = sitk.GetArrayFromImage(mask) # z, y, x
2. 用dicom读取单张dicom图像并显示:
import dicomimport pylabds=dicom.read_file("F:\\dataset\\pancreas\\Output\\thick\\groundtruth\\1\\FILE0001_seg.dcm")pixel_bytes = ds.PixelData##CT值组成了一个矩阵 pix = ds.pixel_array##读取显示图片 pylab.imshow(ds.pixel_array, cmap=pylab.cm.bone)pylab.show()
如果要对dicom图像中的像素值进行修改,继续执行以下代码:
##修改图片中的元素,不能直接使用data_array,需要转换成PixelData for n,val in enumerate(ds.pixel_array.flat): # example: zero anything < 300 if val < 300:ds.pixel_array.flat[n]=0 ds.PixelData = ds.pixel_array.tostring()ds.save_as("newfilename.dcm")
3. 此外,用pydicom也可读取dicom图像
赞 (0)