let main args =
match parseArgs args with
| mode, debug ->
- let scale = 1.
- let config = {
- debug = if debug then DebugOn "." else DebugOff
+ let config =
+ Config(
+ { scale = 1.
- scale = scale
+ minRbcRadius = -0.32
+ maxRbcRadius = 0.32
- // RBC size range in px at scale = 1.0.
- minRBCSize = 20.
- maxRBCSize = 42.
+ preFilterSigma = 1.5
- preFilterSigma = 1.5
+ factorNbPick = 1.0
+ factorWindowSize = 2.0
- factorNbPick = 1.0 // 1.0
- factorWindowSize = 2.0
+ darkStainLevel = 0.25 // Lower -> more sensitive. 0.3
+ maxDarkStainRatio = 0.1
- darkStainLevel = 0.4 // Lower -> more sensitive.
+ infectionArea = 0.012 // 1.2 %
+ infectionLevel = 1.12 // Lower -> more sensitive.
- stainSigma = 10.
- stainLevel = 0.9
- stainSpreadRequired = 3.0
+ stainArea = 0.08 // 8 %
+ stainLevel = 1.1 // Lower -> more sensitive.
+ maxStainRatio = 0.12 // 12 %
- infectionSigma = 2.2
- infectionLevel = 0.87
- infectionPixelsRequired = 1
-
- percentageOfFgValidCell = 0.4
-
- MaxDarkStainRatio = 0.1
-
- minimumCellArea = 1000. * scale ** 2. |> int
- maxOffcenter = 0.5 }
+ standardDeviationMaxRatio = 0.58 // 0.55
+ minimumCellArea = 0.5 })
match mode with
| CmdLine (input, output) ->
- let config = if debug then { config with debug = DebugOn output } else config
+ if debug
+ then
+ config.Debug <- DebugOn output
Directory.CreateDirectory output |> ignore
let app = new Application()
let mainWindow = Views.MainWindow()
+ if debug
+ then
+ config.Debug <- DebugOn "."
+
Utils.log <- (fun m -> log mainWindow m)
//display mainWindow img