用 Rust 和 Tesseract 实现英文数字验证码识别

在本教程中,我们将使用 Rust 编写一个命令行程序,读取一张验证码图片,并通过 Tesseract OCR 引擎识别出其中的英文和数字内容。该项目将使用 leptess 这个 Rust 的 Tesseract 封装库。

一、准备工作
安装 Rust 环境
前往官网安装 Rust 开发工具链:

https://www.rust-lang.org/tools/install
然后确认版本:

rustc --version
安装 Tesseract OCR
确保系统中安装了 Tesseract:

Ubuntu: sudo apt install tesseract-ocr

macOS: brew install tesseract

Windows: https://github.com/tesseract-ocr/tesseract
更多内容访问ttocr.com或联系1436423940
二、创建项目并添加依赖

cargo new captcha_ocr
cd captcha_ocr
修改 Cargo.toml 添加依赖:

[dependencies]
leptess = "0.14"
三、编写识别程序
编辑 src/main.rs:

use leptess::LepTess;

fn main() {
let image_path = "captcha.png"; // 图像路径

// 创建 OCR 实例,语言设置为英文
let mut lt = LepTess::new(None, "eng").expect("无法初始化 Tesseract 引擎");

// 限制识别字符为英文字母和数字
lt.set_variable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
    .unwrap();

// 设置图像
lt.set_image(image_path);

// 获取识别结果
let text = lt.get_utf8_text().expect("识别失败");

println!("识别出的验证码为: {}", text.trim());

}
四、准备图像与语言包
确保 captcha.png 是一张包含英文数字验证码的清晰图像。

确保 Tesseract 安装路径正确,并已包含 eng.traineddata 文件(一般默认包含)。

五、运行程序

cargo run
终端将输出识别结果:

识别出的验证码为: X7G5Q

posted @ 2025-06-12 22:49  ttocr、com  阅读(6)  评论(0)    收藏  举报