如何使用ocr从图像中获取时间和日期?

时间:2013-09-05 10:14:07

标签: c# winforms ocr tessnet2

我正在使用我的项目中引用的这个ocr lib dll:http://www.pixel-technology.com/freeware/tessnet2/

创建了一个新类:

private void test()
        {
            Bitmap image = new Bitmap(@"d:\timessquare.jpg");
            tessnet2.Tesseract ocr = new tessnet2.Tesseract();
            ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // If digit only
            ocr.Init(@"c:\temp", "fra", false); // To use correct tessdata
            List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
            foreach (tessnet2.Word word in result)
                //Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
                t = string.Format("{0} : {1}", word.Confidence, word.Text);
        }

但它永远不会过关:

ocr.SetVariable("tessedit_char_whitelist", "0123456789");

例如我有这张图片:

enter image description here

我想从图像中取出日期和时间,然后将日期和时间与我的电脑日期进行比较,并检查它是在同一天或一天​​或更多天之前。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以在图像上裁剪出包含日期和时间的区域,并在该子图像上执行OCR,或者为DoOCR方法的第二个参数定义矩形ROI。在这种情况下,不需要SetVariable语句。请务必先将图像重新缩放至300DPI。