--- a
+++ b/ImageProcessing.py
@@ -0,0 +1,53 @@
+import numpy as np
+import SimpleITK as sitk
+
+def read_image(opt):
+    I_pre = sitk.ReadImage(opt.pre)  
+    I_post = sitk.ReadImage(opt.post)  
+    img_pre = np.array(sitk.GetArrayFromImage(I_pre))
+    img_post = np.array(sitk.GetArrayFromImage(I_post))
+    img_sub = img_post - img_pre
+    return img_pre, img_post, img_sub, np.array(I_pre.GetSpacing())
+
+
+
+def Norm_Zscore(img):
+    img= (img-np.mean(img))/np.std(img) 
+    return img
+
+
+def imgnorm(N_I,index1=0.001,index2=0.001):
+    N_I = N_I.astype(np.float32)
+    I_sort = np.sort(N_I.flatten())
+    I_min = I_sort[int(index1*len(I_sort))]
+    I_max = I_sort[-int(index2*len(I_sort))]
+    
+    N_I =1.0*(N_I-I_min)/(I_max-I_min)
+    N_I[N_I>1.0]=1.0
+    N_I[N_I<0.0]=0.0
+
+    
+    return N_I
+
+def save_image(image,opt,savename):
+    I = sitk.ReadImage(opt.pre)  
+    Heat_image = sitk.GetImageFromArray(image, isVector=False) 
+    Heat_image.SetSpacing(I.GetSpacing())
+    Heat_image.SetOrigin(I.GetOrigin())
+    Heat_image.SetDirection(I.GetDirection())
+    sitk.WriteImage(Heat_image,opt.outfolder+'/'+savename)     
+    
+
+from skimage.morphology import closing  
+from scipy import ndimage as nd   
+def labeling_seg(seg):
+    bw = closing(seg)
+    struct = nd.generate_binary_structure(3, 3)    
+    bw = nd.morphology.binary_dilation(bw,structure=struct,iterations=7)
+    bw=bw.astype('uint8')
+    label_image = nd.measurements.label(bw)
+    label_image = label_image[0]
+
+    label_image = seg*label_image  
+    
+    return label_image
\ No newline at end of file