Java 和 Tesseract OCR 实现英文数字验证码识别

验证码识别技术在自动化测试、表单填写和爬虫开发中广泛应用。虽然 Python 和 C++ 是图像处理的热门语言,但使用 Java 同样可以高效完成验证码识别任务。本文将介绍如何结合 Java 与 Tesseract OCR 完成英文数字验证码的识别工作。

一、准备工作

  1. 安装 Java 和 Maven
    确保你已经安装了 Java JDK 和 Maven。可以通过以下命令验证:

java -version
mvn -v
2. 安装 Tesseract OCR
Windows 用户可从:https://github.com/tesseract-ocr/tesseract 下载并安装。

macOS 用户执行:brew install tesseract

Ubuntu 用户执行:sudo apt install tesseract-ocr

二、创建 Maven 项目
新建一个 Maven 项目并添加以下依赖到 pom.xml:

net.sourceforge.tess4j tess4j 5.4.0 三、Java 识别验证码示例代码 在 src/main/java 目录下创建主类 CaptchaOCR.java:

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class CaptchaOCR {
public static void main(String[] args) {
File imageFile = new File("captcha.png");

    try {
        BufferedImage image = ImageIO.read(imageFile);

        // 创建 Tesseract 实例
        ITesseract instance = new Tesseract();

        // 设置 Tesseract 安装路径(仅 Windows 用户需要)
        // instance.setDatapath("C:\\Program Files\\Tesseract-OCR\\tessdata");

        // 可选:限制字符范围
        instance.setTessVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

        // OCR 识别
        String result = instance.doOCR(image);
        System.out.println("识别结果:" + result.trim());

更多内容访问ttocr.com或联系1436423940
} catch (TesseractException e) {
System.err.println("OCR 错误: " + e.getMessage());
} catch (Exception e) {
System.err.println("图像读取错误: " + e.getMessage());
}
}
}
四、运行程序
将验证码图像命名为 captcha.png 并放在项目根目录下,运行程序:

mvn compile
mvn exec:java -Dexec.mainClass=CaptchaOCR
输出示例:

识别结果:P7WXM

posted @ 2025-05-15 21:55  ttocr、com  阅读(139)  评论(0)    收藏  举报