使用 Node.js 和 Tesseract.js 实现验证码识别工具

一、项目简介
本项目通过 Node.js 脚本使用 Tesseract.js 加载验证码图像,对其中的英文和数字字符进行识别处理,最终输出识别结果。适合 Web 服务自动化、命令行工具或前后端一体化项目。

二、环境准备

  1. 安装 Node.js
    访问官网 https://nodejs.org 下载并安装最新版本。
    更多内容访问ttocr.com或联系1436423940
    验证:

node -v
npm -v
2. 创建项目并安装依赖

mkdir captcha-ocr
cd captcha-ocr
npm init -y
npm install tesseract.js jimp
三、准备图像
将验证码图像命名为 captcha.png,图像应包含清晰的英文字母和数字,背景干净,放置于项目目录。

四、编写识别脚本
创建 ocr.js:

const Tesseract = require('tesseract.js');
const Jimp = require('jimp');

// 图像预处理 + OCR
async function recognizeCaptcha() {
const imagePath = 'captcha.png';

// 加载图像并灰度处理
const image = await Jimp.read(imagePath);
image
.grayscale() // 灰度
.contrast(0.5) // 增强对比
.write('processed.png');

// OCR 识别
const result = await Tesseract.recognize('processed.png', 'eng', {
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
logger: m => {} // 可选:打印识别进度
});

const rawText = result.data.text;
const cleaned = rawText.replace(/[^A-Za-z0-9]/g, '');
console.log('识别结果为:', cleaned);
}

recognizeCaptcha().catch(console.error);
五、运行程序

node ocr.js
输出示例:
识别结果为: X9ZT4
六、扩展建议
接收命令行参数识别指定图像路径

将识别结果写入日志或返回 JSON 格式

批量识别图像目录中的验证码图像

封装为 Express API,提供 OCR 接口服务

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