Argonaut.MainWindow.Preprocess_Final C# (CSharp) Метод

Preprocess_Final() публичный Метод

public Preprocess_Final ( string filepath, string outPath, bool displayMode, int thresholding ) : string
filepath string
outPath string
displayMode bool
thresholding int
Результат string
        public string Preprocess_Final(string filepath, string outPath, bool displayMode, int thresholding)
        {
            StringBuilder sb = new StringBuilder();
            displayMode = false;
            WriteToLog("Loading Image : " + filepath);
            Bitmap load;
            try
            {
                load = new Bitmap(filepath);
            }
            catch (Exception ex)
            {
                return "FAIL!";
            }

            var start = DateTime.Now;
            WriteToLog("Running Background Detection ...");
            Bgr backgroundColor = Heuristics.DetectBackground(load, 20);
            WriteToLog("Detected Background : " + backgroundColor.ToString());
            WriteToLog("Detected Background Completed in " + (DateTime.Now - start).TotalSeconds.ToString() +
                              " seconds");

            var backgroundGuess = new Image<Bgr, Byte>(100, 100, backgroundColor);

            WriteToLog("Running Shred Extraction ");
            WriteToLog("Image Size : " + load.Height * load.Width + " Pixels");

            string imagesrc = filepath;
            Bitmap source = new Bitmap(imagesrc);
            WriteToLog("beginning flood fill...");
            System.Drawing.Point startPoint = Heuristics.GetStartingFloodFillPoint(source,
                                                               System.Drawing.Color.FromArgb(255, (int)backgroundColor.Red,
                                                                              (int)backgroundColor.Green,
                                                                              (int)backgroundColor.Blue));
            Bitmap Mask = Preprocessing.FloodFill(source, startPoint.X, startPoint.Y, 50, backgroundColor);
            WriteToLog("flood fill complete...");
            WriteToLog("extracting objects...");
            List<Bitmap> extractedobj = Preprocessing.ExtractImages(source, Mask);
            WriteToLog("Extracted " + extractedobj.Count + " objects");

            // Prompt for input directory and Write to file

            Console.Write("Enter Output Directory (Default is Working): ");
            string directory = outPath;// Console.ReadLine();

            if (String.IsNullOrEmpty(directory) || !Directory.Exists(directory))
            {
                WriteToLog("Writing to Working Directory");
                directory = string.Empty;
            }
            else
            {
                directory += "\\";
            }

            WriteToLog("Rotating Images");
            int ii = 0;
            int maxLen = extractedobj.Count.ToString().Length;
            foreach (Bitmap bm in extractedobj)
            {
                Bitmap bm2 = Preprocessing.Orient(bm);
                bm2.Save(directory + "image" + ii.ToString("D" + maxLen) + ".png");
                ii++;
            }
            WriteToLog("Wrote Files To Disk");
            return sb.ToString();
        }