X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=Parasitemia%2FParasitemiaCore%2FImgTools%2FImgTools.fs;h=5a404e3d23a1bf18bffdebc921c07c345aea2456;hb=b87b35b922551f122228df1fd9c530bbb807935a;hp=ae542ceda477e82411b1750b13e816391d36686a;hpb=2e3cd07dd099944059ef5e7a7f5ef57ffe3d677b;p=master-thesis.git
diff --git a/Parasitemia/ParasitemiaCore/ImgTools/ImgTools.fs b/Parasitemia/ParasitemiaCore/ImgTools/ImgTools.fs
index ae542ce..5a404e3 100644
--- a/Parasitemia/ParasitemiaCore/ImgTools/ImgTools.fs
+++ b/Parasitemia/ParasitemiaCore/ImgTools/ImgTools.fs
@@ -12,18 +12,19 @@ open Emgu.CV.Structure
///
///
///
-let normalize (img: Image) (upperLimit: float) : Image =
+let normalize (img : Image) (upperLimit : float) : Image =
let min = ref [| 0.0 |]
let minLocation = ref <| [| Point() |]
let max = ref [| 0.0 |]
let maxLocation = ref <| [| Point() |]
img.MinMax(min, max, minLocation, maxLocation)
let normalized = (img - (!min).[0]) / ((!max).[0] - (!min).[0])
- if upperLimit = 1.0
- then normalized
- else upperLimit * normalized
+ if upperLimit = 1.0 then
+ normalized
+ else
+ upperLimit * normalized
-let mergeChannels (img: Image) (rgbWeights: float * float * float) : Image =
+let mergeChannels (img : Image) (rgbWeights : float * float * float) : Image =
match rgbWeights with
| 1., 0., 0. -> img.[2]
| 0., 1., 0. -> img.[1]
@@ -35,10 +36,10 @@ let mergeChannels (img: Image) (rgbWeights: float * float * float)
CvInvoke.AddWeighted(result, 1., img.[0], blueFactor, 0., result)
result
-let mergeChannelsWithProjection (img: Image) (v1r: float32, v1g: float32, v1b: float32) (v2r: float32, v2g: float32, v2b: float32) (upperLimit: float) : Image =
+let mergeChannelsWithProjection (img : Image) (v1r : float32, v1g : float32, v1b : float32) (v2r : float32, v2g : float32, v2b : float32) (upperLimit : float) : Image =
let vr, vg, vb = v2r - v1r, v2g - v1g, v2b - v1b
let vMagnitude = sqrt (vr ** 2.f + vg ** 2.f + vb ** 2.f)
- let project (r: float32) (g: float32) (b: float32) = ((r - v1r) * vr + (g - v1g) * vg + (b - v1b) * vb) / vMagnitude
+ let project (r : float32) (g : float32) (b : float32) = ((r - v1r) * vr + (g - v1g) * vg + (b - v1b) * vb) / vMagnitude
let result = new Image(img.Size)
// TODO: Essayer en bindant Data pour gagner du temps
for i = 0 to img.Height - 1 do
@@ -47,7 +48,7 @@ let mergeChannelsWithProjection (img: Image) (v1r: float32, v1g: f
normalize result upperLimit
// Normalize image values between 0uy and 255uy.
-let normalizeAndConvert (img: Image) : Image =
+let normalizeAndConvert (img : Image) : Image =
(normalize (img.Convert()) 255.).Convert()
let gaussianFilter (img : Image<'TColor, 'TDepth>) (standardDeviation : float) : Image<'TColor, 'TDepth> =