1、首先导入jar包,
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>3.2.1</version>
</dependency>
2、下载字库tessdata,我放在了项目下,你们自己选择路径。
网盘链接:https://pan.baidu.com/s/1LOUR0QYp4cSMoJa1ikNpDw
提取码:5n78
3、代码
/**
* description 获取图片内容
*
* @param imgPath 图片路径
* @return java.lang.String
* @author yanzy
* @version 1.0
* @date 2020/3/16 17:31
*/
public static String getPhotoContent(String imgPath) {
try {
double start = System.currentTimeMillis();
// 获取字库的路径
String dataURL = new File(PhotoKnow.class.getResource("/").toURI()).getPath() + "\\tessdata";
ITesseract instance = new Tesseract();
// 设置字库的位置
instance.setDatapath(dataURL);
// 选择字库文件(只需要文件名,不需要后缀名)
instance.setLanguage("chi_sim");
// 判断文件是否存在
File imageFile = new File(imgPath);
if (!imageFile.exists()) {
return "文件不存在!";
}
// 将图片转换成流文件处理
BufferedImage textImage = ImageIO.read(imageFile);
String result = instance.doOCR(textImage);
double end = System.currentTimeMillis();
System.out.println("耗时" + (end - start) / 1000 + " s");
return result;
} catch (Exception e) {
return "识别出错!";
}
}
public static void main(String[] args) {
System.out.println(getPhotoContent("E:\\1.png"));
}
4、运行效果
原图:
识别后的:
5、总体来说简单的文字识别率还是可以的,稍微复杂点的就不太行了,你们可以自行训练字库优化。