我正在使用Tessearct OCR来识别图像的字符。但我希望OCR使用
忽略数字字符_tesseract->SetVariable("tessedit_char_blacklist", "0123456789");
通过这种方式,OCR无法识别数字字符,但它为我提供了一些我不想要的其他字符。
例如:有一张图片的文字为 12美元,当我在该图片上应用OCR时,它为我提供 USD fl
正如我们上面所见,OCR将 12 转换为我不想要的fl。我希望OCR忽略 12 。
有没有办法获得结果 USD 而不是 USD fl
为我提供任何解决方案。任何帮助都会很明显。
答案 0 :(得分:4)
请参阅此评论,了解方法SetVariable()
:
// For most variables, it is wise to set them before calling Init.
我遇到了与您相同的问题,并在Init
修复代码之前移动代码:
tess = new TessBaseAPI();
tess->SetVariable("tessedit_char_whitelist",
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
tess->SimpleInit([dataPath cStringUsingEncoding:NSUTF8StringEncoding],
"eng", false);
答案 1 :(得分:2)
这不是tessedit_char_blacklist
的用途。 tessedit_char_blacklist
保证数字不会出现在图片中。如果你告诉Tesseract不正确的信息,你会得到不好的结果。
您想要的是后处理Tesseract的输出。让它输出正确的OCR,然后删除数字字符。