Exemple #1
0
        private static void AnalyseLayout()
        {
            string imageFile = @"D:\Self-Study\OpenSources\Tesseract\original\phototest.tif";
            //imageFile = @"D:\Self-Study\OpenSources\Tesseract\original\eurotext.tif";

            TesseractProcessor processor = new TesseractProcessor();

            processor.InitForAnalysePage();
            processor.SetPageSegMode(ePageSegMode.PSM_AUTO);

            using (Bitmap bmp = Bitmap.FromFile(imageFile) as Bitmap)
            {
                DocumentLayout doc = processor.AnalyseLayout(bmp);
                Console.WriteLine(doc.ToString());

                using (Image tmp = new Bitmap(bmp.Width, bmp.Height)) // prevents one-byte index format
                {
                    using (Graphics grph = Graphics.FromImage(tmp))
                    {
                        Rectangle rect = new Rectangle(0, 0, tmp.Width, tmp.Height);

                        grph.DrawImage(bmp, rect, rect, GraphicsUnit.Pixel);

                        grph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

                        foreach (Block block in doc.Blocks)
                        {
                            DrawBlock(grph, block);
                        }
                    }

                    tmp.Save(@"D:\temp\page_layout_test2.bmp");
                }
            }
        }
        public static void AnalyseLayout()
        {
            int n_images = Workspace.Images.Length;
            int i_image  = 0;

            for (; i_image < n_images; i_image++)
            {
                string fileName = Workspace.Images[i_image];

                Console.WriteLine("{0} Image: {1}", i_image, fileName);

                string imageFile = Path.Combine(Workspace.InputFolder, fileName);

                string name = Path.GetFileNameWithoutExtension(imageFile);

                string outFile  = Path.Combine(Workspace.OutputFolder, string.Format("Simple1_{0}_layout.bmp", name));
                string outFile2 = Path.Combine(Workspace.OutputFolder, string.Format("Simple1_{0}_grey.bmp", name));
                string outFile3 = Path.Combine(Workspace.OutputFolder, string.Format("Simple1_{0}_bin.bmp", name));

                using (TesseractProcessor processor = new TesseractProcessor())
                {
                    processor.InitForAnalysePage();
                    //processor.SetPageSegMode(ePageSegMode.PSM_AUTO);

                    using (Bitmap bmp = Bitmap.FromFile(imageFile) as Bitmap)
                    {
                        DateTime started = DateTime.Now;
                        DateTime ended   = DateTime.Now;

                        DocumentLayout doc = null;

                        unsafe
                        {
                            started = DateTime.Now;

                            doc = processor.AnalyseLayout(bmp);

                            ended = DateTime.Now;

                            Console.WriteLine("Duration AnalyseLayout: {0} ms", (ended - started).TotalMilliseconds);
                        }
                        Console.WriteLine(doc.ToString());

                        using (Image tmp = new Bitmap(bmp.Width, bmp.Height)) // prevents one-byte index format
                        {
                            using (Graphics grph = Graphics.FromImage(tmp))
                            {
                                Rectangle rect = new Rectangle(0, 0, tmp.Width, tmp.Height);

                                grph.DrawImage(bmp, rect, rect, GraphicsUnit.Pixel);

                                grph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

                                foreach (Block block in doc.Blocks)
                                {
                                    Render.DrawBlock(grph, block);
                                }
                            }

                            tmp.Save(outFile);
                        }
                    }
                }
            }
        }