--- a +++ b/src/utils.py @@ -0,0 +1,26 @@ +import pydicom + + +def window_image(img, window_center,window_width, intercept, slope): + img = (img*slope +intercept) + img_min = window_center - window_width//2 + img_max = window_center + window_width//2 + img[img<img_min] = img_min + img[img>img_max] = img_max + return img + + +def get_first_of_dicom_field_as_int(x): + #get x[0] as in int is x is a 'pydicom.multival.MultiValue', otherwise get int(x) + if type(x) == pydicom.multival.MultiValue: + return int(x[0]) + else: + return int(x) + + +def get_windowing(data): + dicom_fields = [data[('0028','1050')].value, #window center + data[('0028','1051')].value, #window width + data[('0028','1052')].value, #intercept + data[('0028','1053')].value] #slope + return [get_first_of_dicom_field_as_int(x) for x in dicom_fields]