Esempio n. 1
0
        public void Run()
        {
            using (var src = Cv2.ImRead(FilePath.Image.Binarization, ImreadModes.GrayScale))
                using (var niblack = new Mat())
                    using (var sauvola = new Mat())
                        using (var bernsen = new Mat())
                            using (var nick = new Mat())
                            {
                                int kernelSize = 51;

                                var sw = new Stopwatch();
                                sw.Start();
                                Binarizer.Niblack(src, niblack, kernelSize, -0.2);
                                sw.Stop();
                                Console.WriteLine($"Niblack {sw.ElapsedMilliseconds} ms");

                                sw.Restart();
                                Binarizer.Sauvola(src, sauvola, kernelSize, 0.1, 64);
                                sw.Stop();
                                Console.WriteLine($"Sauvola {sw.ElapsedMilliseconds} ms");

                                sw.Restart();
                                Binarizer.Bernsen(src, bernsen, kernelSize, 50, 200);
                                sw.Stop();
                                Console.WriteLine($"Bernsen {sw.ElapsedMilliseconds} ms");

                                sw.Restart();
                                Binarizer.Nick(src, nick, kernelSize, -0.14);
                                sw.Stop();
                                Console.WriteLine($"Nick {sw.ElapsedMilliseconds} ms");

                                using (new Window("src", WindowMode.AutoSize, src))
                                    using (new Window("Niblack", WindowMode.AutoSize, niblack))
                                        using (new Window("Sauvola", WindowMode.AutoSize, sauvola))
                                            using (new Window("Bernsen", WindowMode.AutoSize, bernsen))
                                                using (new Window("Nick", WindowMode.AutoSize, nick))
                                                {
                                                    Cv2.WaitKey();
                                                }
                            }
        }
Esempio n. 2
0
 public static void Binarize(Mat mat, int blockSize, Mat res)
 {
     Cv2.CvtColor(mat, tmp, ColorConversionCodes.RGB2GRAY);
     Binarizer.Sauvola(tmp, res, blockSize, 0.15, 32);
 }