如何使用java

时间:2018-02-09 09:21:37

标签: java ocr tesseract tess4j

我使用java通过Tesseract OCR从图像中提取文本。但输出由一些特殊字符组成,因为图像包含一些符号。

我想忽略所有特殊字符并仅显示文本。有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:0)

在tesseract中,您可以设置TessBaseAPI.VAR_CHAR_WHITELISTTessBaseAPI.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