카테고리 없음

Converting DCM to jpg

나니리 2021. 4. 14. 18:02

import cv2
import os
import pydicom
import numpy as np


def convert_images(input_filename):
dcm = pydicom.read_file(os.path.join(dcm_dir, name))
if 'MONOCHROME1' in dcm.PhotometricInterpretation:
image = np.invert(dcm.pixel_array)
else:
image= np.asarray(dcm.pixel_array)

norm_image = (image - image.min()) / (image.max() - image.min()) * 255
converted_image = cv2.cvtColor(norm_image.astype(np.uint8), cv2.COLOR_GRAY2BGR)

return converted_image


after_dir = os.path.join('./after')

dcm_dir = str(input('Enter current DCM directory name (default=./before) : '))
if dcm_dir!='\n':
dcm_dir = os.path.join(dcm_dir)

if os.path.isdir(dcm_dir)==False:
print('...Not exist directory or dcm file')
dcm_dir = os.path.join('./before')
if os.path.isdir(dcm_dir) == False:
print('Created directory (./before)')
os.mkdir(dcm_dir)

if os.path.isdir(after_dir) == False:
print('...Make output folder')
os.mkdir(after_dir)

file_list = os.listdir(dcm_dir)
file_list_dcm = [file for file in file_list if file.endswith(".dcm")]


#
#
for i, name in enumerate(file_list_dcm):
print(i)
input_file_name = os.path.join(dcm_dir, name)
output_file_name = os.path.join(after_dir, name[:-4]+'.jpg')

converted_image = convert_images(input_file_name)
cv2.imwrite(output_file_name, converted_image)