X-Git-Url: http://git.euphorik.ch/?p=master-thesis.git;a=blobdiff_plain;f=Parasitemia%2FParasitemiaCore%2FTypes.fs;h=f696c2713e8af31693c6730f070d24fbb6c4d65a;hp=8f526f9891c61b412546ea34003d57a3c242a597;hb=cd9c55f80bcdc4fc6b85eb1b81474aed005e5016;hpb=2d712781def419c9acc98368f7102b19b064f16d diff --git a/Parasitemia/ParasitemiaCore/Types.fs b/Parasitemia/ParasitemiaCore/Types.fs index 8f526f9..f696c27 100644 --- a/Parasitemia/ParasitemiaCore/Types.fs +++ b/Parasitemia/ParasitemiaCore/Types.fs @@ -8,6 +8,7 @@ open Emgu.CV open Emgu.CV.Structure open Const +open UnitsOfMeasure type Points = HashSet @@ -43,8 +44,20 @@ type Ellipse (cx : float32, cy : float32, a : float32, b : float32, alpha : floa PI * (3.f * (this.A + this.B) - sqrt ((3.f * this.A + this.B) * (this.A + 3.f * this.B))) override this.ToString () = - sprintf "{Ellipse: cx = %f, cy = %f, a = %f, b = %f, alpha = %f}" this.Cx this.Cy this.A this.B this.Alpha + $"{{{nameof Ellipse}: {nameof this.Cx} = %f{this.Cx}, {nameof this.Cy} = %f{this.Cy}, {nameof this.A} = %f{this.A}, {nameof this.B} = %f{this.B}, {nameof this.Alpha} = %f{this.Alpha}}}" + override this.Equals (other : obj) = + match other with + | :? Ellipse as otherEllipse -> + otherEllipse.Cx = this.Cx && + otherEllipse.Cy = this.Cy && + otherEllipse.A = this.A && + otherEllipse.B = this.B && + otherEllipse.Alpha = this.Alpha + | _ -> false + + override this.GetHashCode () = HashCode.Combine (this.Cx, this.Cy, this.A, this.B, this.Alpha) +[] type CellClass = HealthyRBC | InfectedRBC | Peculiar type Cell = @@ -102,4 +115,11 @@ type ResultBuilder () = member this.ReturnFrom (x) = x -let result = ResultBuilder () \ No newline at end of file +let result = ResultBuilder () + +type AnalysisResult = + { + Cells : Cell list + RBCSize_μm : float<μm> + RBCSize_px : float32 + } \ No newline at end of file