spring整合tess4j用于OCR识别图片,在windows环境识别正常,在liunx没有反应,本文用于解决部署linux问题。
整合springboot
1、引入pom文件
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>5.7.0</version>
</dependency>
2、创建文件夹F:\data\tessdata,将字符库放入该文件夹中
3、编写代码
@Slf4j
public class CaptchaUtil {
//imgUrl:图片地址,path为字符库地址
public static String executeTess4J(String imgUrl,String path){
String ocrResult = "";
try{
log.info("开始识别图片{}",imgUrl);
ITesseract instance = new Tesseract();
//设置白名单
instance.setTessVariable("tessedit_char_whitelist", "0123456789");
instance.setLanguage("num");//设置语言
File imgDir = new File(imgUrl);
if(imgDir.exists()){
instance.setOcrEngineMode(1); // 设置OCR引擎模式(OEM)
instance.setPageSegMode(6); // 设置图片分割模式(PSM)
instance.setDatapath(path);
ocrResult = instance.doOCR(imgDir);
log.info("识别图片成功{}",ocrResult);
}
return ocrResult.trim().replace("\\n","");
}catch (TesseractException e){
log.info("识别图片异常{}",e);
return null;
}
}
}
然后执行即可