Java使用Java OCR API进行验证码识别
2024-08-31 15:22:14
Maven坐标:
<!-- https://mvnrepository.com/artifact/com.asprise.ocr/java-ocr-api -->
<dependency>
<groupId>com.asprise.ocr</groupId>
<artifactId>java-ocr-api</artifactId>
<version>15.3.0.3</version>
</dependency>
示例代码:
import java.io.File;
import com.asprise.ocr.Ocr;
public class OCRTest {
public static void main(String[] args) {
Ocr.setUp(); // one time setup
Ocr ocr = new Ocr(); // create a new OCR engine
ocr.startEngine("eng", Ocr.SPEED_SLOW); // English
String s = ocr.recognize(new File[] {new File("C:\\Users\\zifeiy\\Pictures\\checkcode.jpg")},
Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT);
System.out.println("Result: " + s);
ocr.stopEngine();
}
}
一些说明
这种方法只能识别一些简单的验证码,比如这样的:
虽然它回报一些error,但是是可以看到结果的:
<error: currently only 1-bit black/white or 32bit RGB images are accepted for barcode recognition>
Result: <error: currently only 1-bit black/white or 32bit RGB images are accepted for barcode recognition>3029
虽然前面报了一长串错误,但是还是可以看到后面的3029
。
若果需要破解一些更模糊的验证码,比如:
这样的,可以研究一下Tesseract。
还有就是,这是一款商业SDK,我们用的是体验版(点进去一看商业版的定制版中最便宜的一年LITE版要4k多美元,抵我大半年的工资,所以还是决定继续用试用版吧),
所以有的时候启动的时候(Ocr.setUp()
)会出现一个弹框:
最新文章
- visual studio code 安装python扩展
- CSS布局学习笔记之position
- 边工作边刷题:70天一遍leetcode: day 85-2
- Generate the Jobs script from msdb Database
- 使用 powershell 的 grep 过滤文本
- C#控件背景透明的几种解决方案
- (转载)Javascript操作表单之间的数据传递
- 构建WDK驱动出现fatal error U1087: cannot have : and :: dependents for same target
- (转)FastJson---高性能JSON开发包
- [LeetCode] Max Area of Island 岛的最大面积
- 会话机器人Chatbot的相关资料
- 【二代示波器教程】第13章 RTX操作系统版本二代示波器实现
- 在angular 6中使用 less
- jQuery效果-----fadeIn()、fadeOut()、fadeToggle()、fadeTo()
- 一、PHP_OSS使用
- mysql 表中已经存在数据 修改字段类型 varchar(11) 改为 int(11)
- Java NIO -- 通道 Channel
- C#学习入门第一篇
- AngularJS 指令中的require
- leetcode 杨辉三角