pythonはdicom画像をjpgピクチャの例に変換します。


主な原理:dicomの窓の幅を調整し、各画素点の階調値を[0,255]の範囲に拡大する。
使用したpythonライブラリ:SimpleITK
以下はdicom(.dcm)の画像をjpgの画像に変換するデモです。

import SimpleITK as sitk
import numpy as np
import cv2

def convert_from_dicom_to_jpg(img,low_window,high_window,save_path):
  lungwin = np.array([low_window*1.,high_window*1.])
  newimg = (img-lungwin[0])/(lungwin[1]-lungwin[0])  #   
  newimg = (newimg*255).astype('uint8')        #       [0,255]
  cv2.imwrite(save_path, newimg, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

if __name__ == '__main__':

  #        dicom       jpg
  dcm_image_path = '/DICOM_image/lung001.dcm'    #  dicom  
  output_jpg_path = 'JPG_image/lung001.jpg'
  ds_array = sitk.ReadImage(dcm_image_path)     #  dicom       
  img_array = sitk.GetArrayFromImage(ds_array)   #  array
  # SimpleITK             zyx,                ,        ,  img_array shape
  #    (1,height,width)   
  shape = img_array.shape
  img_array = np.reshape(img_array, (shape[1], shape[2])) #  array  height width
  high = np.max(img_array)
  low = np.min(img_array)
  convert_from_dicom_to_jpg(img_array, low, high, output_jpg_path)  #    ,   jpg           
  print('FINISHED')
以上のpythonでdicomの画像をjpgの画像に変換した例は、小編集が皆さんに共有しているすべての内容です。参考にしていただければと思います。よろしくお願いします。