近期项目里新增了识别图片里的文字的需求,在这里总结一下实现步骤
下载安装tessdata
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.01.exe。
安装:
此时可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,这样OCR便可以识别多国语言。然后一路点击Next按钮即可。
配置环境变量
- 把安装目录配置到path里即可;
- 再新建变量名为TESSDATA_PREFIX,变量值还是安装目录;
检验是否配置成功
tesseract -v
出现版本号就是配置成功;
代码测试
- 添加依赖
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.5.4</version>
</dependency>
- 代码
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
public class Tess4jDemo {
public static void main(String[] args) throws TesseractException {
final ITesseract instance = new Tesseract();
//
instance.setDatapath("D:\\tessdata");
//如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
instance.setLanguage("chi_sim");
//该目录下有很多图片,每张图片里有文字内容
File imageLocation = new File("D:\\verifyImg");
for(File image : imageLocation.listFiles()){
//输出识别结果
System.out.println(image.getName()+" -->"+instance.doOCR(image));
}
}
}