projects
/
master-thesis.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change the way the dark stain is marked.
[master-thesis.git]
/
Parasitemia
/
ParasitemiaCore
/
MatchingEllipses.fs
diff --git
a/Parasitemia/ParasitemiaCore/MatchingEllipses.fs
b/Parasitemia/ParasitemiaCore/MatchingEllipses.fs
index
3ed8ad6
..
d4a6a41
100644
(file)
--- 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.
open Utils
// All ellipses with a score below this are removed.
-let matchingScoreThreshold
= 0.4f
+let matchingScoreThreshold
PerRadiusUnit = 0.07f // For a radius of 1. // 0.25
let matchingScorePower = 20.f
let matchingScorePower = 20.f
-let windowSizeRadiusFactor = 1.f / 2.f
+let windowSizeRadiusFactor = 1.f / 2.f
// Used when searching for neighbor ellipses.
let minimumDistanceFromCenterRadiusFactor = 1.f / 3.f
let minimumDistanceFromCenterRadiusFactor = 1.f / 3.f
+let minimumAreaFactor = 1.1f;
type private EllipseScoreFlaggedKd (matchingScore: float32, e: Ellipse) =
let mutable matchingScore = matchingScore
type private EllipseScoreFlaggedKd (matchingScore: float32, e: Ellipse) =
let mutable matchingScore = matchingScore
@@
-72,6
+73,7
@@
type MatchingEllipses (radius: float32) =
| _ -> ()
// 3) Remove ellipses whose center is near the center of another ellipse with a better score.
| _ -> ()
// 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
for e in ellipses do
if e.MatchingScore < matchingScoreThreshold
then
@@
-91,7
+93,7
@@
type MatchingEllipses (radius: float32) =
else
// Case where ellipses are overlapped.
match EEOver.EEOverlapArea e.Ellipse other.Ellipse with
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
| _ ->
()
other.Removed <- true
| _ ->
()