X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=Parasitemia%2FParasitemiaCore%2FMatchingEllipses.fs;h=d4a6a41c72c9ec96a6c62d5d2358b8311aeb41c7;hb=ec96e4c38dd6beaf22b4e2a2ebb87248fea6f209;hp=bfa042b0239232583f77687a7ecaf3edb190616d;hpb=e588f9c954a54cb259b2c1f6f9e8d9dbd4639269;p=master-thesis.git diff --git a/Parasitemia/ParasitemiaCore/MatchingEllipses.fs b/Parasitemia/ParasitemiaCore/MatchingEllipses.fs index bfa042b..d4a6a41 100644 --- a/Parasitemia/ParasitemiaCore/MatchingEllipses.fs +++ b/Parasitemia/ParasitemiaCore/MatchingEllipses.fs @@ -10,10 +10,11 @@ open Types open Utils // All ellipses with a score below this are removed. -let matchingScoreThresholdPerRadiusUnit = 0.02f // For a radius of 1. +let matchingScoreThresholdPerRadiusUnit = 0.07f // For a radius of 1. // 0.25 let matchingScorePower = 20.f -let windowSizeRadiusFactor = 1.f / 2.f -let minimumDistanceFromCenterRadiusFactor = 1.f / 3.f // 1.f / 3.f +let windowSizeRadiusFactor = 1.f / 2.f // Used when searching for neighbor ellipses. +let minimumDistanceFromCenterRadiusFactor = 1.f / 3.f +let minimumAreaFactor = 1.1f; type private EllipseScoreFlaggedKd (matchingScore: float32, e: Ellipse) = let mutable matchingScore = matchingScore @@ -92,7 +93,7 @@ type MatchingEllipses (radius: float32) = else // Case where ellipses are overlapped. match EEOver.EEOverlapArea e.Ellipse other.Ellipse with - | Some (overlapArea, _, _) when e.Ellipse.Area < 1.1f * overlapArea || other.Ellipse.Area < 1.1f * overlapArea -> + | Some (overlapArea, _, _) when e.Ellipse.Area < minimumAreaFactor * overlapArea || other.Ellipse.Area < minimumAreaFactor * overlapArea -> other.Removed <- true | _ -> ()