java 利用Tesseract-OCR识别图片验证码

时间:2021-01-06 09:03:10

1.windows下的Tesseract-OCR安装

Tesseract-OCR下载: http://pan.baidu.com/s/1miRU6EG

识别语言库:
官网地址: https://github.com/tesseract-ocr/langdata
或者网盘:
http://pan.baidu.com/s/1kV18iov

安装完后ocr后,将语言库文件到到安装目录~\Tesseract-OCR\tessdata\里,如图:
java 利用Tesseract-OCR识别图片验证码

2.linux下的Tesseract-OCR安装

Tesseract-OCR安装:
下载地址: https://github.com/tesseract-ocr/tesseract

或者百度网盘: http://pan.baidu.com/s/1i5v69VJ

leptonica安装:
官网: http://www.leptonica.com/ 上下载
或者网盘下载,下载地址:
http://pan.baidu.com/s/1mhTGk4K

同样,安装完后ocr后,将语言库文件到到安装目录~\Tesseract-OCR\tessdata\里。

3.命令执行

tesseract D:\yzm\yzm.png D:\yzm\yzm -l eng

或者:

tesseract D:\yzm\yzm.png D:\yzm\yzm -l num

有时候会遇到如下错:
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your “tessdata” directory.
需要将安装目录配置到系统路径中,如添加
TESSDATA_PREFIX=D:\Program Files\Tesseract-OCR\
linux 的方法类似。

4.利用java执行

    @Test
public void test1(){
Process pro = null;
try {
pro = Runtime.getRuntime().exec(new String[]{"tesseract",
"D:\\yzm\\yzm.png","D:\\yzm\\yzm",
"-l","eng"});
pro.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

运行以上代码后,会在D:\yzm\目录中看到yzm.txt, 内容就为yzm.png的验证码内容。
验证图片示例: java 利用Tesseract-OCR识别图片验证码