Switch to side-by-side view

--- a
+++ b/evaluation/eval_metrics-1.py
@@ -0,0 +1,98 @@
+
+import numpy as np
+from scipy.spatial.distance import directed_hausdorff
+import nibabel as nib
+from skimage import io
+
+from nipype.algorithms.metrics import Distance
+
+import SimpleITK as sitk
+
+from hausdorff import hausdorff
+
+
+def compute_hausdorff_distance(in1, in2, label = 'all'):
+    hausdorff_distance_filter = sitk.HausdorffDistanceImageFilter()
+    if label == 'all':
+        # Hausdorff distance
+        hausdorff_distance_filter.Execute(in1, in2)
+    else:
+    
+        in1_array  = sitk.GetArrayFromImage(in1)
+        in1_array = (in1_array == label) *1 
+        in1_array = in1_array.astype('uint16')  
+        img1 = sitk.GetImageFromArray(in1_array)
+        
+        in2_array  = sitk.GetArrayFromImage(in2)
+        in2_array = (in2_array == label) *1 
+        in2_array = in2_array.astype('uint16')  
+        img2 = sitk.GetImageFromArray(in2_array)
+        # Hausdorff distance
+        hausdorff_distance_filter.Execute(img1, img2)
+    return hausdorff_distance_filter.GetHausdorffDistance()
+
+def compute_dice_coefficient(in1, in2, label  = 'all'):
+
+    if label=='all': 
+        return 2 * np.sum( (in1>0) &  (in2>0) & (in1 == in2)) / (np.sum(in1 > 0) + np.sum(in2 > 0))
+    else:
+        return 2 * np.sum((in1 == label) & (in2 == label)) / (np.sum(in1 == label) + np.sum(in2 == label))
+
+def compute_volumentric_difference(in1, in2, label  = 'all'):
+    if label  == 'all':
+#        vol_dif  = np.sum((in1 != in2) & (in1 !=0) & (in2 !=0))
+        return np.sum((in1 != in2)) / ((np.sum(in1 > 0) + np.sum(in2 > 0)))
+
+    else:
+        in1  = (in1 == label) * 1
+        in2  = (in2 == label) * 1
+        return np.sum((in1 != in2)) / ((np.sum(in1 > 0) + np.sum(in2 > 0)))
+
+
+
+
+if __name__ ==  '__main__':
+    gt  = '/home/yb/my-files/datasets/MISA_dataset_res/predict_header_data/IBSR_17_seg.nii.gz'
+    pred  = '//home/yb/my-files/datasets/MISA_dataset_res/Validation_Set/IBSR_17/IBSR_17_seg.nii.gz'
+
+#    gt_nii = nib.load(gt)
+#    gt_nii  = gt_nii.get_data()
+#    I1 = gt_nii[:,:,100]
+##    io.imshow(np.squeeze(I1,axis=-1))
+#    
+#    pred_nii = nib.load(pred)
+#    pred_nii  = pred_nii.get_data()
+##    
+##    I2 = pred_nii[:,:,100]
+###    io.imshow(np.squeeze(I2, axis=-1))
+##    
+#    dice  = compute_dice_coefficient(gt_nii, pred_nii)
+#    
+#    print(dice)
+##    
+#    voil_dif = compute_volumentric_difference(gt_nii, pred_nii)
+#    print(voil_dif)
+    
+    im1  = sitk.ReadImage(gt,  sitk.sitkUInt16)
+    im2  = sitk.ReadImage(pred,  sitk.sitkUInt16)
+
+    
+    # I1  = sitk.GetArrayFromImage(im2)
+    
+    # I2 = (I1 == 2) *1 
+    # I2 = I2.astype('uint16')
+    
+#    image = sitk.Image(256, 128, 256, sitk.sitkInt16)
+#    image.SetOrigin(im1.GetOrigin())
+    
+    # img = sitk.GetImageFromArray(I2)
+    
+#    file_name  = '17_2.nii.gz'
+#    sitk.WriteImage(img, file_name)
+    
+    haus = compute_hausdorff_distance(im1, im2, label = 3)
+    print(haus)
+
+
+
+