Tesseract OCR不会忽略黑名单字符

时间:2013-03-04 10:33:32

标签: ios ocr tesseract

我正在使用Tessearct OCR来识别图像的字符。但我希望OCR使用

忽略数字字符
_tesseract->SetVariable("tessedit_char_blacklist", "0123456789");

通过这种方式,OCR无法识别数字字符,但它为我提供了一些我不想要的其他字符。

例如:有一张图片的文字为 12美元,当我在该图片上应用OCR时,它为我提供 USD fl

正如我们上面所见,OCR将 12 转换为我不想要的fl。我希望OCR忽略 12

有没有办法获得结果 USD 而不是 USD fl

为我提供任何解决方案。任何帮助都会很明显。

2 个答案:

答案 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,然后删除数字字符。