java验证码识别库
使用J4L识别验证码
将解压文件下bits64目录的三个文件 liblept168.dll tess3Wrapper.dll windows7_readme.txt 和 leptonlib.dll 都复制到JDK的bin目录下
然后
将解压目录下的tessdata文件下放到java工程里,与src目录同级。
同时我们需要引入jar包
在J4L解压目录里面找到OCRTest.java文件,运行测试
使用中验证码识别率并不高,只能简单用下
使用 Tess4J 进行 OCR 识别
添加maven依赖
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.3.1</version>
</dependency>
训练库和语言包下载
tessdata中存放了识别库,如果只有字母数字放入eng.traineddata就可以了(看个人需要放吧)
运行测试
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
public class Test {
public static void main(String[] args) {
//验证码图片存储地址
File imageFile = new File("C:/verify/3esg.jpg");
Tesseract tessreact = new Tesseract();
//下载的识别库路径
tessreact.setDatapath("C:/verify/tessdata");
String result;
try {
result = "识别结果:" + tessreact.doOCR(imageFile);
System.out.println(result);
} catch (TesseractException e) {
e.printStackTrace();
}
}
}
相比J4L识别度要高一些
资源地址:压缩包
注意引用的包是import com.java4less.ocr.tess.OCRFacade;
由于自动引入错误包,所以一直报:
java.lang.UnsatisfiedLinkError: no TessWrapperDLL in java.library.path