Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import SimpleITK as sitk | |
| import pandas as pd | |
| import os | |
| import tensorflow as tf | |
| def normalize(img, vmin_out=0, vmax_out=1, norm_min_v=None, norm_max_v=None, epsilon = 1e-5): | |
| if norm_min_v == None and norm_max_v == None: | |
| try: | |
| norm_min_v = tf.reduce_min(img) | |
| norm_max_v = tf.reduce_max(img) | |
| except: | |
| norm_min_v = np.min(img) | |
| norm_max_v = np.max(img) | |
| else: | |
| flags = img < norm_min_v | |
| img[flags] = norm_min_v | |
| flags = img > norm_max_v | |
| img[flags] = norm_max_v | |
| #normalize to interval [0,1) | |
| img = (img - norm_min_v) / (norm_max_v - norm_min_v + epsilon) | |
| #normalize to interval [vmin_out, vmax_out) | |
| img = img * (vmax_out - vmin_out) + vmin_out | |
| return img | |
| filepath = r"E:\XCATproject\SynthRad_GAN\trainingdata_new\MR_VIBE_Supplementary_nrrd_73" | |
| for root, dirs, files in os.walk(filepath): | |
| for filename in files: | |
| print(filename) | |
| mr = sitk.ReadImage(os.path.join(filepath, filename)) | |
| mr_array = sitk.GetArrayFromImage(mr) | |
| savepath = os.path.join(r"E:\XCATproject\SynthRad_GAN\trainingdata_new\MR_VIBE_Supplementary_nrrd_73_p10_90_norm0_255", filename) | |
| mr_array_normalized = normalize(mr_array, 0, 255, np.percentile(mr_array, 10), np.percentile(mr_array, 90), | |
| epsilon=0) | |
| mr_normalized = sitk.GetImageFromArray(mr_array_normalized) | |
| mr_normalized.SetSpacing(mr.GetSpacing()) | |
| mr_normalized.SetOrigin(mr.GetOrigin()) | |
| mr_normalized.SetDirection(mr.GetDirection()) | |
| sitk.WriteImage(mr_normalized, savepath) |