如何使用java忽略Tesseract OCR中的特殊字符

如何使用java忽略Tesseract OCR中的特殊字符,java,ocr,tesseract,tess4j,Java,Ocr,Tesseract,Tess4j,我使用java通过Tesseract OCR从图像中提取文本。但输出由一些特殊字符组成,因为图像包含一些符号 我想忽略所有特殊字符,只显示文本。有什么方法可以这样做吗?在tesseract中,您可以设置TessBaseAPI.VAR\u CHAR\u白名单和TessBaseAPI.VAR\u CHAR\u黑名单,以忽略一些特殊字符 以下操作将使tesseract只能识别A-Z和数字 String whiteList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

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

我想忽略所有特殊字符,只显示文本。有什么方法可以这样做吗?

在tesseract中,您可以设置TessBaseAPI.VAR\u CHAR\u白名单和TessBaseAPI.VAR\u CHAR\u黑名单,以忽略一些特殊字符

以下操作将使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 4.0 Alpha LSTM来列出黑色或白色字符,相反,您应该使用图像上预期的字符来训练LSTM

当然,如果您愿意,您仍然可以使用3.*版本的tesseract,其tesseract数据位于