Example #1
1
        public static void Main(string[] args)
        {
            var testImagePath = "./phototest.tif";
            if (args.Length > 0) {
                testImagePath = args[0];
            }

            try {
                var logger = new FormattedConsoleLogger();
                var resultPrinter = new ResultPrinter(logger);
                using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default)) {
                    using (var img = Pix.LoadFromFile(testImagePath)) {
                        using (logger.Begin("Process image")) {
                            var i = 1;
                            using (var page = engine.Process(img)) {
                                var text = page.GetText();
                                logger.Log("Text: {0}", text);
                                logger.Log("Mean confidence: {0}", page.GetMeanConfidence());

                                using (var iter = page.GetIterator()) {
                                    iter.Begin();
                                    do {
                                        if (i % 2 == 0) {
                                            using (logger.Begin("Line {0}", i)) {
                                                do {
                                                    using (logger.Begin("Word Iteration")) {
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.Block)) {
                                                            logger.Log("New block");
                                                        }
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.Para)) {
                                                            logger.Log("New paragraph");
                                                        }
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.TextLine)) {
                                                            logger.Log("New line");
                                                        }
                                                        logger.Log("word: " + iter.GetText(PageIteratorLevel.Word));
                                                    }
                                                } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word));
                                            }
                                        }
                                        i++;
                                    } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine));
                                }
                            }
                        }
                    }
                }
            } catch (Exception e) {
                Trace.TraceError(e.ToString());
                Console.WriteLine("Unexpected Error: " + e.Message);
                Console.WriteLine("Details: ");
                Console.WriteLine(e.ToString());
            }
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
 public Scope(FormattedConsoleLogger container, int indentLevel)
 {
     this.container = container;
     this.indentLevel = indentLevel;
     StringBuilder indent = new StringBuilder();
     for (int i = 0; i < indentLevel; i++) {
         indent.Append(Tab);
     }
     this.indent = indent.ToString();
 }
Example #3
0
            public Scope(FormattedConsoleLogger container, int indentLevel)
            {
                this.container   = container;
                this.indentLevel = indentLevel;
                StringBuilder indent = new StringBuilder();

                for (int i = 0; i < indentLevel; i++)
                {
                    indent.Append(Tab);
                }
                this.indent = indent.ToString();
            }
Example #4
0
 public ResultPrinter(FormattedConsoleLogger logger)
 {
     this.logger = logger;
 }
Example #5
0
 public ResultPrinter(FormattedConsoleLogger logger)
 {
     this.logger = logger;
 }
Example #6
0
        public static void Main(string[] args)
        {
            var testImagePath = "./phototest.tif";

            if (args.Length > 0)
            {
                testImagePath = args[0];
            }

            try {
                var logger        = new FormattedConsoleLogger();
                var resultPrinter = new ResultPrinter(logger);
                using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default)) {
                    using (var img = Pix.LoadFromFile(testImagePath)) {
                        using (logger.Begin("Process image")) {
                            var i = 1;
                            using (var page = engine.Process(img)) {
                                var text = page.GetText();
                                logger.Log("Text: {0}", text);
                                logger.Log("Mean confidence: {0}", page.GetMeanConfidence());

                                using (var iter = page.GetIterator()) {
                                    iter.Begin();
                                    do
                                    {
                                        if (i % 2 == 0)
                                        {
                                            using (logger.Begin("Line {0}", i)) {
                                                do
                                                {
                                                    using (logger.Begin("Word Iteration")) {
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.Block))
                                                        {
                                                            logger.Log("New block");
                                                        }
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.Para))
                                                        {
                                                            logger.Log("New paragraph");
                                                        }
                                                        if (iter.IsAtBeginningOf(PageIteratorLevel.TextLine))
                                                        {
                                                            logger.Log("New line");
                                                        }
                                                        logger.Log("word: " + iter.GetText(PageIteratorLevel.Word));
                                                    }
                                                } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word));
                                            }
                                        }
                                        i++;
                                    } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine));
                                }
                            }
                        }
                    }
                }
            } catch (Exception e) {
                Trace.TraceError(e.ToString());
                Console.WriteLine("Unexpected Error: " + e.Message);
                Console.WriteLine("Details: ");
                Console.WriteLine(e.ToString());
            }
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
Example #7
0
        public string ScanImage(string dateStamp)
        {
            m_logger.Debug("Start: ScanImage()");
            string rawText = "";

            var imagePath = generateNameGrey(dateStamp);

            if (System.IO.File.Exists(imagePath))
            {

                try
                {
                    var logger2 = new FormattedConsoleLogger();
                    var resultPrinter = new ResultPrinter(logger2);

                    using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))

                    // Only digits - It doesn't work properly but we'll leave it here in case we decide to take this way
                    // using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default, "./tessdata/config/onlyDigits.cfg"))
                    {

                        //m_logger.Trace("Tesseract found in {0}", TESSERACT_DATA_PATH);

                        using (var img = Pix.LoadFromFile(imagePath))
                        {
                            using (logger2.Begin("Process image"))
                            {
                                using (Page page = engine.Process(img))
                                {
                                    rawText = page.GetText();

                                    m_logger.Trace(rawText);

                                    m_logger.Trace("Text: {0}", rawText);
                                    m_logger.Trace("Mean confidence: {0}", page.GetMeanConfidence());

                                    // Fix Bug when the digit '1' is interpreted as the letter 'l'
                                    rawText = rawText.Replace('l', '1');

                                    // Fix Bug when the digit '0' is interpreted as the letter 'O'
                                    rawText = rawText.Replace('O', '0');

                                    m_logger.Trace("Text ('l' to 1 and 'O' to 0): {0}", rawText);
                                }
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    m_logger.Trace("Couldn't find the tesseract data");
                    Trace.TraceError(e.ToString());
                    Console.WriteLine("Unexpected Error: " + e.Message);
                    Console.WriteLine("Details: ");
                    Console.WriteLine(e.ToString());
                }
                return rawText;
            }
            else
            {
                string strError = "ScanImage unable to locate file: " + imagePath + ". Is SurveyCraft visible";
                m_logger.Error(strError);
                m_logger.Info(MailUtils.MailUtils.sendit("*****@*****.**", m_strMachineNumber, strError, m_strDailyLogFilename));
                errorPopup("Couldn't capture image", "Is SurveyCraft window the main visible window?");

                return null;
            }
        }