Cleaning syntax.
[master-thesis.git] / Parasitemia / ParasitemiaCore / MatchingEllipses.fs
index d4a6a41..13fd556 100644 (file)
@@ -14,16 +14,16 @@ let matchingScoreThresholdPerRadiusUnit = 0.07f // For a radius of 1. // 0.25
 let matchingScorePower = 20.f
 let windowSizeRadiusFactor = 1.f / 2.f // Used when searching for neighbor ellipses.
 let minimumDistanceFromCenterRadiusFactor = 1.f / 3.f
-let minimumAreaFactor = 1.1f;
+let minimumAreaFactor = 1.1f
 
-type private EllipseScoreFlaggedKd (matchingScore: float32, e: Ellipse) =
+type private EllipseScoreFlaggedKd (matchingScore : float32, e : Ellipse) =
     let mutable matchingScore = matchingScore
 
     member this.Ellipse = e
 
     member this.MatchingScore = matchingScore
 
-    member this.AddMatchingScore (score: float32) =
+    member this.AddMatchingScore (score : float32) =
         matchingScore <- matchingScore + score
 
     member val Processed = false with get, set
@@ -33,18 +33,17 @@ type private EllipseScoreFlaggedKd (matchingScore: float32, e: Ellipse) =
         member this.X = this.Ellipse.Cx
         member this.Y = this.Ellipse.Cy
 
-type MatchingEllipses (radius: float32) =
+type MatchingEllipses (radius : float32) =
     let ellipses = List<EllipseScoreFlaggedKd>()
 
-    member this.Add (e: Ellipse) =
+    member this.Add (e : Ellipse) =
         ellipses.Add(EllipseScoreFlaggedKd(0.f, e))
 
     member this.Ellipses : Ellipse list =
         List.ofSeq ellipses |> List.map (fun e -> e.Ellipse)
 
     member this.PrunedEllipses : Ellipse list =
-        if ellipses.Count = 0
-        then
+        if ellipses.Count = 0 then
             []
         else
             // 1) Create a kd-tree from the ellipses list.
@@ -55,13 +54,15 @@ type MatchingEllipses (radius: float32) =
             for e in ellipses do
                 e.Processed <- true
                 let areaE = e.Ellipse.Area
-                let window = { KdTree.minX = e.Ellipse.Cx - windowSize / 2.f
-                               KdTree.maxX = e.Ellipse.Cx + windowSize / 2.f
-                               KdTree.minY = e.Ellipse.Cy - windowSize / 2.f
-                               KdTree.maxY = e.Ellipse.Cy + windowSize / 2.f }
+                let window =
+                    {
+                        KdTree.minX = e.Ellipse.Cx - windowSize / 2.f
+                        KdTree.maxX = e.Ellipse.Cx + windowSize / 2.f
+                        KdTree.minY = e.Ellipse.Cy - windowSize / 2.f
+                        KdTree.maxY = e.Ellipse.Cy + windowSize / 2.f
+                    }
                 for other in tree.Search window do
-                    if not other.Processed
-                    then
+                    if not other.Processed then
                         let areaOther = other.Ellipse.Area
                         match EEOver.EEOverlapArea e.Ellipse other.Ellipse with
                         | Some (overlapArea, _, _)
@@ -75,20 +76,20 @@ type MatchingEllipses (radius: float32) =
             // 3) Remove ellipses whose center is near the center of another ellipse with a better score.
             let matchingScoreThreshold = matchingScoreThresholdPerRadiusUnit * radius
             for e in ellipses do
-                if e.MatchingScore < matchingScoreThreshold
-                then
+                if e.MatchingScore < matchingScoreThreshold then
                     e.Removed <- true
                 else
-                    let window = { KdTree.minX = e.Ellipse.Cx - e.Ellipse.A
-                                   KdTree.maxX = e.Ellipse.Cx + e.Ellipse.A
-                                   KdTree.minY = e.Ellipse.Cy - e.Ellipse.A
-                                   KdTree.maxY = e.Ellipse.Cy + e.Ellipse.A }
+                    let window =
+                        {
+                            KdTree.minX = e.Ellipse.Cx - e.Ellipse.A
+                            KdTree.maxX = e.Ellipse.Cx + e.Ellipse.A
+                            KdTree.minY = e.Ellipse.Cy - e.Ellipse.A
+                            KdTree.maxY = e.Ellipse.Cy + e.Ellipse.A
+                        }
                     for other in tree.Search window do
-                        if not other.Removed && e.MatchingScore > other.MatchingScore
-                        then
+                        if not other.Removed && e.MatchingScore > other.MatchingScore then
                             // Case where ellipses are too close.
-                            if distanceTwoPoints (PointF(e.Ellipse.Cx, e.Ellipse.Cy)) (PointF(other.Ellipse.Cx, other.Ellipse.Cy)) < minimumDistanceFromCenterRadiusFactor * e.Ellipse.B
-                            then
+                            if distanceTwoPoints (PointF(e.Ellipse.Cx, e.Ellipse.Cy)) (PointF(other.Ellipse.Cx, other.Ellipse.Cy)) < minimumDistanceFromCenterRadiusFactor * e.Ellipse.B then
                                 other.Removed <- true
                             else
                                 // Case where ellipses are overlapped.