C# 当白色文本写在黑色矩形上且黑色矩形的边框为白色时,Tesseract OCR for.net不检测文本?
我正在尝试使用tesseract从png中提取文本。如果出现以下png,Tesseract不会提取文本 图像中的黑色矩形有白色边框(由于网站背景而不可见)。但是,如果我从矩形中删除白色边框,则Tesseract可以检测文本。是否有解决此问题的方法 此外,如果减少边框大小,则会提取一些文本,如下所示: I(31.04 I) 以下是我正在使用的代码: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
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引擎之前,您应该对图像进行预处理。在此图像预处理过程中,我应该做些什么?查看此链接以获取一些提示: