我正在尝试使用tesseract从png中提取文本。如果跟随png,Tesseract不会提取文本。
图像中的黑色矩形有白色边框(由于网站背景而不可见)。但是,如果我从矩形中删除白色边框,那么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我
但是,如果我增加边框大小,那么即使缩放图像也没有效果。
答案 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 OCR或ocr.space OCR可以在黑色背景图片上处理此类白色文字。
一般来说,即使在像电影字幕这样的“令人困惑”的背景下,它们也可以与文本一起开箱即用。请注意,在您的示例中请注意“。”仍然缺少免费的ocr.space API,谷歌OCR完全正确。