- |> List.sortByDescending (fun cell -> cell.infectedArea, (w - cell.center.X) + (h - cell.center.Y))
- |> List.mapi (fun i cell ->
- let center = Point(float cell.center.X, float cell.center.Y)
- let infected, setManually =
- match getPreviousRBC center with
- | Some rbc -> rbc.infected, true
- | _ -> cell.cellClass = ParasitemiaCore.Types.InfectedRBC, false
-
- { num = i + 1
- infected = infected
- setManually = setManually
- center = center
- size = Size(float cell.elements.Width, float cell.elements.Height)
- infectedArea = cell.infectedArea })
+ |> List.sortByDescending (fun cell -> cell.nucleusArea, (w - cell.center.X) + (h - cell.center.Y))
+ |> List.mapi (
+ fun i cell ->
+ let center = Point (float cell.center.X, float cell.center.Y)
+ let infected, setManually =
+ let infected = cell.cellClass = ParasitemiaCore.Types.InfectedRBC
+ match getPreviousManuallyAlteredRBC center with
+ | Some rbc when rbc.infected <> infected -> rbc.infected, true // If it has been previously manually changed and now match the result, the manually flag is removed.
+ | _ -> infected, false
+ {
+ num = i + 1
+ infected = infected
+ setManually = setManually
+ center = center
+ size = Size (float cell.elements.Width, float cell.elements.Height)
+ infectedArea = cell.nucleusArea
+ }
+ )