X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=Parasitemia%2FParasitemiaCore%2FKMedians.fs;h=bae7a248d4ed5046f2dc6f0c0f72e66eb4368a89;hb=b87b35b922551f122228df1fd9c530bbb807935a;hp=5819a669ebea52ef18e897fb5cae6f2e57d653e5;hpb=4bfa3cbdc6145e6944f02e24829ab2ef3a851ac1;p=master-thesis.git diff --git a/Parasitemia/ParasitemiaCore/KMedians.fs b/Parasitemia/ParasitemiaCore/KMedians.fs index 5819a66..bae7a24 100644 --- a/Parasitemia/ParasitemiaCore/KMedians.fs +++ b/Parasitemia/ParasitemiaCore/KMedians.fs @@ -6,13 +6,15 @@ open System.Drawing open Emgu.CV open Emgu.CV.Structure -type Result = { - fg: Image - median_bg: float - median_fg: float - d_fg: Image } // Euclidean distances of the foreground to median_fg. - -let kmedians (img: Image) : Result = +type Result = + { + fg : Image + median_bg : float + median_fg : float + d_fg : Image // Euclidean distances of the foreground to median_fg. + } + +let kmedians (img : Image) : Result = let nbIteration = 4 let w = img.Width let h = img.Height @@ -29,7 +31,7 @@ let kmedians (img: Image) : Result = let mutable d_fg = new Image(img.Size) let mutable fg = new Image(img.Size) - for i in 1 .. nbIteration do + for i = 1 to nbIteration do d_bg <- img.AbsDiff(Gray(median_bg)) d_fg <- img.AbsDiff(Gray(median_fg)) @@ -38,11 +40,12 @@ let kmedians (img: Image) : Result = let bg_values = List() let fg_values = List() - for i in 0 .. h - 1 do - for j in 0 .. w - 1 do - if fg.Data.[i, j, 0] > 0uy - then fg_values.Add(float img.Data.[i, j, 0]) - else bg_values.Add(float img.Data.[i, j, 0]) + for i = 0 to h - 1 do + for j = 0 to w - 1 do + if fg.Data.[i, j, 0] > 0uy then + fg_values.Add(float img.Data.[i, j, 0]) + else + bg_values.Add(float img.Data.[i, j, 0]) median_bg <- MathNet.Numerics.Statistics.Statistics.Median(bg_values) median_fg <- MathNet.Numerics.Statistics.Statistics.Median(fg_values)