Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当白色文本写在黑色矩形上且黑色矩形的边框为白色时,Tesseract OCR for.net不检测文本?_C#_Png_Ocr_Tesseract - Fatal编程技术网

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

C# 当白色文本写在黑色矩形上且黑色矩形的边框为白色时,Tesseract OCR for.net不检测文本?,c#,png,ocr,tesseract,C#,Png,Ocr,Tesseract,我正在尝试使用tesseract从png中提取文本。如果出现以下png,Tesseract不会提取文本 图像中的黑色矩形有白色边框(由于网站背景而不可见)。但是,如果我从矩形中删除白色边框,则Tesseract可以检测文本。是否有解决此问题的方法 此外,如果减少边框大小,则会提取一些文本,如下所示: I(31.04 I) 以下是我正在使用的代码: using (TesseractEngine ocr = new TesseractEngine(dataPath, "eng", EngineMo

我正在尝试使用tesseract从png中提取文本。如果出现以下png,Tesseract不会提取文本

图像中的黑色矩形有白色边框(由于网站背景而不可见)。但是,如果我从矩形中删除白色边框,则Tesseract可以检测文本。是否有解决此问题的方法

此外,如果减少边框大小,则会提取一些文本,如下所示:

I(31.04 I)

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

 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);
                        } 
                    }
                }

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

I G1.04 I

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

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

将此图像路径传递给您的Tesseract引擎。

事实上,即使有白色边框,Tesseract也可以检测文本。这可能是由于其他问题。请尝试将图像转换为灰度并传递给Tesseract“缩放”修复了我的问题。谢谢。使用了这段代码,但没有任何区别。此外,png是黑白的。因此,我不认为生成的灰度图像与原始图像有任何不同。但我注意到,如果我减小白色边框宽度,它会检测到文本为“I(31.04 I)”。在使用图像tesseract引擎之前,您应该对图像进行预处理。在此图像预处理过程中,我应该做些什么?查看此链接以获取一些提示: