Diff of /Metrics.py [000000] .. [271336]

Switch to side-by-side view

--- a
+++ b/Metrics.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Thu Nov 24 22:50:27 2016
+
+@author: Shreyas_V
+"""
+
+import numpy as np
+
+def accuracy(pred, orig_label, msk):
+    '''  calculates complete accuracy
+    INPUT: predicted labels, original labels, each 2D numpy arrays
+    OUTPUT: float
+    '''    
+    acc = len(pred[(pred == orig_label) & msk])/float(len(msk[msk]))
+    return acc
+
+def DSC_en(pred, orig_label):
+    TP = len(pred[(pred == 4) & (pred == orig_label)])
+    denom = len(pred[(pred == 4) & msk]) + len (orig_label[(orig_label == 4)])
+    if denom == 0:
+        return 1.
+    return 2.*TP/float(denom)
+    
+def DSC(pred, orig_label):
+    ''' Calculates Dice Score Coefficient
+    INPUT: predicted, original labels
+    OUTPUT: float
+    '''
+    TP = len(pred[(pred != 0) & (orig_label != 0)])
+    denom = len(pred[pred!=0]) + len(orig_label[orig_label != 0])
+    if denom == 0:
+        return 1
+    return 2.*TP/float(denom)
+
+def DSC_core_tumor(pred, orig_label):
+    ''' Calculates DSC for core tumor (1, 3 and 4)
+    INPUT: predicted, original labels
+    OUTPUT: float
+    '''
+    TP = len(pred[((pred!=0) & (pred!=2)) & ((orig_label !=0) & (orig_label !=2))])
+    denom = len(pred[pred[((pred!=0) & (pred!=2))]) + len(orig_label[(orig_label !=0) & (orig_label !=2)])
+    if denom == 0:
+        return 1
+    return 2.*TP/float(denom)
+
+def PPV(pred, orig_label):
+    TP = len(pred[((pred!=0) & (pred!=2)) & ((orig_label !=0) & (orig_label !=2))])
+    FP = len(pred[((pred!=0) & (pred!=2)) & ((orig_label ==0) | (orig_label ==2))])
+    if TP == 0:
+        return 0.
+    return TP/float(TP+FP)