else
None
+/// <summary>
+/// Build a set of ellipses as a 'MatchingEllipses' object by finding ellipses with the given edges and gradient.
+/// </summary>
let find (edges: Matrix<byte>)
(xGradient: Matrix<float32>)
(yGradient: Matrix<float32>)
// Add the new elements.
let newElemsBegin_j = window_j + windowSize - increment
let newElemsEnd_j = window_j + windowSize - 1
- for j in (if newElemsBegin_j < 0 then 0 else newElemsBegin_j) .. (if newElemsEnd_j >= w then w - 1 else newElemsEnd_j) do
- for i in window_i_begin .. window_i_end do
+ for j = (if newElemsBegin_j < 0 then 0 else newElemsBegin_j) to (if newElemsEnd_j >= w then w - 1 else newElemsEnd_j) do
+ for i = window_i_begin to window_i_end do
if edgesData.[i, j] = 1uy
then currentElements.Add(Point(j, i))
- if currentElements.Count >= 10
+ if currentElements.Count >= nbPickElementsMin
then
let mutable nbOfPicks = (float currentElements.Count) * factorNbMaxPick |> int
let mutable nbOfValidPicks = (float currentElements.Count) * factorNbValidPick |> int