当白色文字写在黑色矩形上并且黑色矩形的边框是白色时,Tesseract OCR for .net不检测文本?

时间:2017-01-03 10:08:18

标签: c# png ocr tesseract

我正在尝试使用tesseract从png中提取文本。如果跟随png,Tesseract不会提取文本。 enter image description here

图像中的黑色矩形有白色边框(由于网站背景而不可见)。但是,如果我从矩形中删除白色边框,那么Tesseract就能够检测到文本。是否有任何解决方法这个问题?

此外,如果减小边框大小,则确实会将一些文本提取为:

  

我(31.04我

以下是我正在使用的代码:

 using (TesseractEngine ocr = new TesseractEngine(dataPath, "eng", EngineMode.TesseractOnly))
            {
                using (Pix p = Pix.LoadFromFile(filePath))
                {
                    using (Pix img = p.Scale(2,3))
                    {

                        using (var page = ocr.Process(img))
                        {

                            string text = page.GetText();
                            Console.WriteLine(text);
                        } 
                    }
                }

            }

通过缩放,我可以提取以下文字:

  

我G1.04我

但是,如果我增加边框大小,那么即使缩放图像也没有效果。

2 个答案:

答案 0 :(得分:0)

using AForge.Imaging;
Grayscale grayFilter = new Grayscale(0.2125, 0.7154, 0.0721);
Bitmap grImage = grayFilter.Apply(image);
grImage.Save("./grey_image.png");

Pass this image path to your TesseractEngine.

答案 1 :(得分:-1)

Google Cloud vision OCRocr.space OCR可以在黑色背景图片上处理此类白色文字。

一般来说,即使在像电影字幕这样的“令人困惑”的背景下,它们也可以与文本一起开箱即用。请注意,在您的示例中请注意“。”仍然缺少免费的ocr.space API,谷歌OCR完全正确。

enter image description here