open System.Drawing
open Emgu.CV
-open Emgu.CV.Structure
open Types
open Utils
// Yield 'false' when the point is owned by another ellipse.
if case1 then
- yield sign delta <> sign delta' || Utils.squaredDistanceTwoPoints c p' > Utils.squaredDistanceTwoPoints c p
+ sign delta <> sign delta' || Utils.squaredDistanceTwoPoints c p' > Utils.squaredDistanceTwoPoints c p
else
- yield sign delta = sign delta' && Utils.squaredDistanceTwoPoints c p' < Utils.squaredDistanceTwoPoints c p
+ sign delta = sign delta' && Utils.squaredDistanceTwoPoints c p' < Utils.squaredDistanceTwoPoints c p
else
- yield case1
+ case1
elif e.State = CellState.Peculiar then // A peculiar always win against a RBC.
- yield true
+ true
else
- yield not <| e'.Contains p.X p.Y
+ not <| e'.Contains p.X p.Y
} |> Seq.forall id
let globalStdDeviation = MathNet.Numerics.Statistics.Statistics.PopulationStandardDeviation (seq {
for y in 0 .. h - 1 do
for x in 0 .. w - 1 do
- yield float imgData.[y, x, 0] })
+ float imgData.[y, x, 0] })
for e in ellipses do
if not e.Removed then
for y in (if minY < 0 then 0 else minY) .. (if maxY >= h then h - 1 else maxY) do
for x in (if minX < 0 then 0 else minX) .. (if maxX >= w then w - 1 else maxX) do
if shrinkedE.Contains (float32 x) (float32 y) then
- yield float imgData.[y, x, 0] })
+ float imgData.[y, x, 0] })
if stdDeviation > globalStdDeviation * config.Parameters.standardDeviationMaxRatio then
e.Removed <- true *)
seq {
for parasitePixel in parasitePixels do
if nucleusPixels.Exists (fun p -> pown (p.X - parasitePixel.X) 2 + pown (p.Y - parasitePixel.Y) 2 <= diameterParasiteSquared) then
- yield 1
+ 1
} |> Seq.sum
else
0