我使用java通过Tesseract OCR从图像中提取文本。但输出由一些特殊字符组成,因为图像包含一些符号。
我想忽略所有特殊字符并仅显示文本。有什么方法可以做到吗?
答案 0 :(得分:0)
在tesseract中,您可以设置TessBaseAPI.VAR_CHAR_WHITELIST
和TessBaseAPI.VAR_CHAR_BLACKLIST
以忽略某些特殊字符。
以下将使tesseract仅识别A-Z和数字
String whiteList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
tessBaseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,whiteList);
下一个片段将允许您识别除〜和fl
之外的所有内容String blackList = "~fl";
tessBaseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,blackList );
另请注意,如tesseract github issue中所述,您不能使用 tesseract 4.0 Alpha LSTM 对字符进行黑名单或白名单,而应使用字符训练LSTM你期待你的形象。
当然,如果你想 - 你仍然可以使用3. *版本的tesseract,它的tessdata位于here