Use a maybe monad to be able abort an analysis.
[master-thesis.git] / Parasitemia / ParasitemiaCore / ParasitesMarker.fs
index 22ea041..ffe0d14 100644 (file)
@@ -6,8 +6,6 @@ open System.Linq
 open Emgu.CV
 open Emgu.CV.Structure
 
-open Logger
-
 open Utils
 
 type Result = {
@@ -21,7 +19,7 @@ type Result = {
 // * 'Infection' corresponds to the parasite. It shouldn't contain thrombocytes.
 let findMa (green: Image<Gray, float32>) (filteredGreen: Image<Gray, float32>) (config: Config.Config) : Result * Image<Gray, byte> * Image<Gray, byte> =
     // We use the filtered image to find the dark stain.
-    let kmediansResults = Log.LogWithTime("Finding fg/bg (k-medians)", Severity.USER, (fun () -> KMedians.kmedians filteredGreen))
+    let kmediansResults = KMedians.kmedians filteredGreen
     let { KMedians.fg = fg; KMedians.median_bg = median_bg; KMedians.median_fg = median_fg; KMedians.d_fg = d_fg } = kmediansResults
     let darkStain = d_fg.Cmp(median_bg * float config.Parameters.darkStainLevel, CvEnum.CmpType.GreaterThan)
     darkStain._And(filteredGreen.Cmp(median_fg, CvEnum.CmpType.LessThan))