X-Git-Url: http://git.euphorik.ch/?p=master-thesis.git;a=blobdiff_plain;f=Parasitemia%2FParasitemia%2FMainAnalysis.fs;h=ec2aabb9953f8ef789f0ac98b92289128191381b;hp=167e618fec7187b759bd6c18ff9d344502d7f385;hb=044b0ae69df3ac565432545b2fa934589016f9bd;hpb=962440dfe579569ba7e3ebba6f878cb575d1fc02 diff --git a/Parasitemia/Parasitemia/MainAnalysis.fs b/Parasitemia/Parasitemia/MainAnalysis.fs index 167e618..ec2aabb 100644 --- a/Parasitemia/Parasitemia/MainAnalysis.fs +++ b/Parasitemia/Parasitemia/MainAnalysis.fs @@ -13,31 +13,30 @@ open Types let doAnalysis (img: Image) (name: string) (config: Config) : Cell list = - - use scaledImg = if config.Parameters.scale = 1.0 then img else img.Resize(config.Parameters.scale, CvEnum.Inter.Area) + let scaledImg = if config.Parameters.scale = 1.0 then img else img.Resize(config.Parameters.scale, CvEnum.Inter.Area) use green = scaledImg.Item(1) let greenFloat = green.Convert() - let filteredGreen = gaussianFilter greenFloat config.Parameters.preFilterSigma + let filteredGreen = gaussianFilter greenFloat (float config.Parameters.preFilterSigma) logTime "areaOpen 1" (fun () -> ImgTools.areaOpenF filteredGreen config.Parameters.initialAreaOpen) - config.RBCRadius <- logTime "Granulometry" (fun() -> Granulometry.findRadius (filteredGreen.Convert()) (10, 100) 0.5 |> float) + config.RBCRadius <- logTime "Granulometry" (fun() -> Granulometry.findRadius (filteredGreen.Convert()) (10, 100) 0.3 |> float32) - let secondAreaOpen = int <| config.RBCArea / 3. + let secondAreaOpen = int <| config.RBCArea / 3.f if secondAreaOpen > config.Parameters.initialAreaOpen then logTime "areaOpen 2" (fun () -> ImgTools.areaOpenF filteredGreen secondAreaOpen) - let parasites, filteredGreenWhitoutInfection, filteredGreenWhitoutStain = ParasitesMarker.find filteredGreen config + let parasites, filteredGreenWhitoutStain = ParasitesMarker.find filteredGreen config //let parasites, filteredGreenWhitoutInfection, filteredGreenWhitoutStain = ParasitesMarker.findMa greenFloat filteredGreenFloat config let edges, xGradient, yGradient = logTime "Finding edges" (fun () -> ImgTools.findEdges filteredGreenWhitoutStain) - logTime "Removing small connected components from thinning" (fun () -> removeArea edges 12) + logTime "Removing small connected components from thinning" (fun () -> removeArea edges (config.RBCRadius ** 2.f / 50.f |> int)) let allEllipses, ellipses = logTime "Finding ellipses" (fun () -> let matchingEllipses = Ellipse.find edges xGradient yGradient config - matchingEllipses.Ellipses, matchingEllipses.PrunedEllipses ) + matchingEllipses.Ellipses, matchingEllipses.PrunedEllipses) let cells = logTime "Classifier" (fun () -> Classifier.findCells ellipses parasites filteredGreenWhitoutStain config) @@ -49,8 +48,6 @@ let doAnalysis (img: Image) (name: string) (config: Config) : Cell li let buildFileName postfix = System.IO.Path.Combine(dirPath, name + postfix) - //saveImg canny (buildFileName " - canny.png") - saveMat (edges * 255.0) (buildFileName " - edges.png") saveImg parasites.darkStain (buildFileName " - parasites - dark stain.png") @@ -80,7 +77,7 @@ let doAnalysis (img: Image) (name: string) (config: Config) : Cell li saveImg filteredGreen (buildFileName " - filtered.png") saveImg filteredGreenWhitoutStain (buildFileName " - filtered closed stain.png") - saveImg filteredGreenWhitoutInfection (buildFileName " - filtered closed infection.png") + //saveImg filteredGreenWhitoutInfection (buildFileName " - filtered closed infection.png") saveImg green (buildFileName " - green.png")