Add some GUI elements :
[master-thesis.git] / Parasitemia / ParasitemiaCore / Ellipse.fs
index 520d29d..1059e3b 100644 (file)
@@ -261,15 +261,15 @@ let private areVectorsValid (p1x: float32) (p1y: float32) (p2x: float32) (p2y: f
 
 
 let find (edges: Matrix<byte>)
-         (xGradient: Image<Gray, float32>)
-         (yGradient: Image<Gray, float32>)
+         (xGradient: Matrix<float32>)
+         (yGradient: Matrix<float32>)
          (config: Config) : MatchingEllipses =
 
     let r1, r2 = config.RBCRadius.Min, config.RBCRadius.Max
     let incrementWindowDivisor = 4.f
 
     // We choose a window size for which the biggest ellipse can always be fitted in.
-    let windowSize = roundInt (2.f * r2 / (incrementWindowDivisor - 1.f) * incrementWindowDivisor)
+    let windowSize = roundInt (2.f * r2)
     let factorNbPick = config.Parameters.factorNbPick
 
     let increment = windowSize / (int incrementWindowDivisor)
@@ -334,9 +334,8 @@ let find (edges: Matrix<byte>)
                            squaredDistance p1xf p1yf p3xf p3yf >= squaredMinimumDistance &&
                            squaredDistance p2xf p2yf p3xf p3yf >= squaredMinimumDistance
                         then
-                            match areVectorsValid (float32 p1xf) (float32 p1yf) (float32 p2xf) (float32 p2yf) -xDirData.[p1.Y, p1.X, 0] -yDirData.[p1.Y, p1.X, 0] -xDirData.[p2.Y, p2.X, 0] -yDirData.[p2.Y, p2.X, 0] with
+                            match areVectorsValid (float32 p1xf) (float32 p1yf) (float32 p2xf) (float32 p2yf) -xDirData.[p1.Y, p1.X] -yDirData.[p1.Y, p1.X] -xDirData.[p2.Y, p2.X] -yDirData.[p2.Y, p2.X] with
                             | Some (m1, m2) ->
-                                //let pouet = ellipse2 p1xf p1yf (float m1) p2xf p2yf (float m2) p3xf p3yf
                                 match ellipse2 p1xf p1yf (float m1) p2xf p2yf (float m2) p3xf p3yf with
                                 | Some e when e.Cx > 0.f && e.Cx < w_f - 1.f && e.Cy > 0.f && e.Cy < h_f - 1.f &&
                                               e.A >= r1 - radiusTolerance && e.A <= r2 + radiusTolerance && e.B >= r1 - radiusTolerance && e.B <= r2 + radiusTolerance ->