Radi_tech’s blog

Radiological technologist in Japan / MRI / AI / Deep learning / MATLAB / R / Python

【Python】MRI dicomデータを各pixcelの信号強度のcsvファイルに一括変換

MRI dicomデータを各pixcelの信号強度のcsvファイルに一括変換する

必要なmoduleはpydicom
事前にpip install pydicomでinstall しておく


ws = 'ワークスペース用フォルダ'
os.chdir(ws)

import os
import glob 
import pydicom
import numpy as np
import pandas as pd


# path of dicom folder 
dcm_fd = "フォルダpathを書く"
# create file list of dicom images
dcm_fls = glob.glob(dcm_fd)

# create folder to save csv file
os.mkdir("sv_dcm2csv")


for tmp_fl in dcm_fls:
  tmp_dcm = pydicom.read_file(tmp_fl)
  

  # get rescale factor for PHILIPS image
  rscale_slop = tmp_dcm.RescaleSlope

  # get rescale factor for PHILIPS image
  sacele_factor = tmp_dcm[0x2005100e]
  sacele_factor = sacele_factor.value

 # PHILIPS image
  img = tmp_dcm.pixel_array / rscale_slop /  sacele_factor


  # create file name
  tmp_file_name = os.path.splitext(tmp_fl)
  tmp_file_name = tmp_file_name[0].split("/")
  file_name = tmp_file_name[5]

  save_file_name = "ワークスペースフォルダ" + "/" + file_name + ".csv"

  # conver to float type & save using Pandas
  pd.DataFrame(img).to_csv(save_file_name, index=False, header=False, float_format='%11.6f')