使用 Node.js 和 Tesseract.js 实现验证码识别工具
一、项目简介
本项目通过 Node.js 脚本使用 Tesseract.js 加载验证码图像,对其中的英文和数字字符进行识别处理,最终输出识别结果。适合 Web 服务自动化、命令行工具或前后端一体化项目。
二、环境准备
- 安装 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 接口服务
浙公网安备 33010602011771号