我使用Tessearct来识别图像的字符。但我希望OCR忽略数字字符。
_tesseract->SetVariable("tessedit_char_blacklist", "0123456789");
通过这种方式,OCR不识别数字字符,但它为我提供了一些我不想要的其他字符。
例如:有一个图像的文本为$ 12,当我在该图像上应用OCR时,它提供了美元fl。
如上文所示,OCR将12转换为fl,这是我不想要的。我希望12被OCR忽略。
有没有办法得到美元而不是美元fl的结果?
给我任何解决办法。任何帮助都是有价值的。
发布于 2013-08-05 09:08:37
有关方法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);
发布于 2015-09-17 15:48:35
这不是tessedit_char_blacklist
的目的。tessedit_char_blacklist
保证数字不会出现在图像中。如果你告诉Tesseract不正确的信息,你会得到坏的结果。
相反,你想要的是后处理Tesseract的输出。让它输出正确的OCR,然后去掉数字字符。
https://stackoverflow.com/questions/15199510
复制相似问题