# Convert DICOM to jpg via openCV
import cv2
import os
import pydicom
import glob
import numpy as np
inputdir = r'input'
outdir = 'jpg/'
#os.mkdir(outdir)
test_list = [os.path.basename(x) for x in glob.glob(inputdir + './*.dcm')]
#print(test_list)
for f in test_list:
ds = pydicom.dcmread(inputdir + f)
shape = ds.pixel_array.shape
# Convert to float to avoid overflow or underflow losses.
image_2d = ds.pixel_array.astype(float)
window_center = 40
window_width = 200
min = (2*window_center - window_width)/2.0 + 0.5 + 1024;
max = (2*window_center + window_width)/2.0 + 0.5 + 1024;
# Rescaling grey scale between 0-255
image_2d_scaled = (np.maximum(image_2d,0) / image_2d.max()) * 255.0
# Convert to uint
image_2d_scaled = np.uint8(image_2d_scaled)
print(inputdir + f)
img = ds.pixel_array # get image array
cv2.imwrite(outdir + f.replace('.dcm','.jpg'),image_2d_scaled) # write jpg image