X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=Parasitemia%2FParasitemiaUI%2FProgram.fs;h=feab9ec2037a59b91621369b8b62a332e575adaf;hb=23466ba92c5595f6c0b9f97c86a221a4e5ffebe9;hp=74f0d359930dac0227d8d6a8a5203db544254b09;hpb=97c24aa168f06f507fdff79429038d78a2c33326;p=master-thesis.git diff --git a/Parasitemia/ParasitemiaUI/Program.fs b/Parasitemia/ParasitemiaUI/Program.fs index 74f0d35..feab9ec 100644 --- a/Parasitemia/ParasitemiaUI/Program.fs +++ b/Parasitemia/ParasitemiaUI/Program.fs @@ -74,12 +74,16 @@ let main args = let images = [ for file in files -> Path.GetFileNameWithoutExtension(FileInfo(file).Name), config.Copy(), new Image(file) ] Log.LogWithTime("Whole analyze", Severity.USER, (fun () -> - let results = ParasitemiaCore.Analysis.doMultipleAnalysis images None - - for id, cells in results do - let config = images |> List.pick (fun (id', config', _) -> if id' = id then Some config' else None) - let total, infected = countCells cells - fprintf resultFile "File: %s %d %d %.2f (diameter: %A)\n" id total infected (100. * (float infected) / (float total)) config.RBCRadius)) + match ParasitemiaCore.Analysis.doMultipleAnalysis images None with + | Some results -> + for id, cells in results do + let config, img = images |> List.pick (fun (id', config', img') -> if id' = id then Some (config', img') else None) + img.Dispose() + let total, infected = countCells cells + fprintf resultFile "File: %s %d %d %.2f (diameter: %A)\n" id total infected (100. * (float infected) / (float total)) config.RBCRadius + | None -> + fprintf resultFile "Analysis aborted" + Some ())) |> ignore Log.RmListener(listener) 0