9 | DebugOn of string // Output directory.
12 initialAreaOpen
: int // Area of the first initial opening to remove the central illumination of RBC.
13 ratioSecondAreaOpen
: float32
// The area of the second opening is 'ratioSecondAreaOpen' * mean RBC area. It's applied only if greater than 'initialAreaOpen'.
15 minRbcRadius
: float32
// Factor of the mean RBC radius.
16 maxRbcRadius
: float32
// Factor of the mean RBC radius.
18 preFilterSigma
: float // To remove the high frequency noise.
21 factorNbPick
: float // The number of computed ellipse per edge pixel.
23 // Parasites detection.
24 darkStainLevel
: float // Lower -> more sensitive. Careful about illumination on the borders.
25 maxDarkStainRatio
: float // When a cell must own less than this ratio to be a RBC.
27 stainArea
: float32
// Factor of a RBC area. 0.5 means the half of RBC area.
28 stainLevel
: float // > 1
29 maxStainRatio
: float // When a cell must own less than this ratio to be a RBC.
31 infectionArea
: float32
// Factor of a RBC area. 0.5 means the half of RBC area.
32 infectionLevel
: float // > 1
34 standardDeviationMaxRatio
: float // The standard deviation of the pixel values of a cell can't be greater than standardDeviationMaxRatio * global standard deviation
35 minimumCellAreaFactor
: float32
// Factor of the mean RBC area.
38 type Config (param
: Parameters) =
39 member this
.Parameters = param
40 member val Debug = DebugOff with get
, set
43 member val RBCRadius = 30.f
with get
, set
45 member this
.RBCMinRadius = this
.RBCRadius + param
.minRbcRadius
* this
.RBCRadius
46 member this
.RBCMaxRadius = this
.RBCRadius + param
.maxRbcRadius
* this
.RBCRadius
48 member this
.RBCArea = PI * this
.RBCRadius ** 2.f
49 member this
.RBCMinArea = param
.minimumCellAreaFactor
* this
.RBCArea
51 member this
.InfectionArea = param
.infectionArea
* this
.RBCArea
52 member this
.StainArea = param
.stainArea
* this
.RBCArea
55 this
.MemberwiseClone() :?> Config