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

一、项目说明
我们将使用 tesseract.js,这是 Tesseract OCR 的 JavaScript 封装,支持浏览器和 Node.js 环境。通过它,我们可以在 Node.js 中实现识别验证码图像并输出识别结果的功能。
更多内容访问ttocr.com或联系1436423940
二、环境准备

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

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

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

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

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

Tesseract.recognize(
imagePath,
'eng',
{
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
logger: m => console.log(m.status)
}
).then(({ data: { text } }) => {
const result = text.replace(/\s+/g, '');
console.log(识别结果: ${result});
}).catch(err => {
console.error('识别失败:', err);
});
执行:

node recognize.js captchas/A8XQ.png
示例输出:

识别结果: A8XQ
四、批量识别图像目录(扩展)
可用于批量标签或自动爬虫系统:

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

const files = fs.readdirSync('./captchas').filter(f => f.endsWith('.png'));

files.forEach(file => {
const fullPath = './captchas/' + file;
Tesseract.recognize(fullPath, 'eng', {
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
}).then(({ data: { text } }) => {
const result = text.replace(/\s+/g, '');
console.log(${file} => ${result});
}).catch(err => {
console.error(${file} => 识别失败: ${err.message});
});
});

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