用 Node.js 与 Tesseract 实现图像验证码识别

一、项目简介
本项目基于 Node.js 编写一个图像验证码识别脚本,借助 tesseract.js 库在纯 JavaScript 环境下完成 OCR 识别。适合构建图像识别服务、自动化测试脚本等。

二、环境准备

  1. 安装 Node.js
    前往 https://nodejs.org 下载并安装最新版本。

  2. 初始化项目并安装依赖

mkdir captcha-ocr-node
cd captcha-ocr-node
npm init -y
npm install tesseract.js
三、验证码识别代码
创建文件 recognize.js:

const Tesseract = require('tesseract.js');
const path = require('path');

const imagePath = process.argv[2] || 'captcha.png';

Tesseract.recognize(
imagePath,
'eng',
{
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
logger: m => console.log(m.status, m.progress) // 可选:打印识别进度
}
).then(({ data: { text } }) => {
console.log('识别结果:', text.replace(/\s+/g, ''));
}).catch(err => {
console.error('识别失败:', err);
});
运行示例:

node recognize.js test.png
输出示例:

识别结果: 8HZR
四、批量识别图像目录
创建文件 batch.js:

const fs = require('fs');
const Tesseract = require('tesseract.js');

const imageDir = 'captchas';

fs.readdirSync(imageDir).forEach(file => {
if (file.endsWith('.png')) {
Tesseract.recognize(${imageDir}/${file}, 'eng', {
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
}).then(({ data: { text } }) => {
const result = text.replace(/\s+/g, '');
console.log(${file} => ${result});
});
}
});

posted @ 2025-06-21 12:44  ttocr、com  阅读(181)  评论(0)    收藏  举报