当前位置: 首页 > news >正文

用 Node.js 实现英文数字验证码识别

验证码识别在自动化测试、信息提取等领域具有实际价值。本文介绍如何通过 Node.js 和 Tesseract.js 库实现一个简单的英文数字验证码识别程序。

一、技术选型与准备
所需工具

Node.js(建议版本 ≥ 14)

Tesseract.js(Tesseract OCR 的 JavaScript 封装)

Jimp(图像处理库)

安装依赖

首先新建一个项目目录:

mkdir node-captcha-ocr && cd node-captcha-ocr
npm init -y

安装所需依赖:

npm install tesseract.js jimp

二、项目结构

你需要准备一张验证码图片,比如 captcha.png,放在项目根目录。

node-captcha-ocr/

├── index.js
└── captcha.png

三、编写识别脚本

编辑 index.js 文件:

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

async function preprocessImage(inputPath, outputPath) {
const image = await Jimp.read(inputPath);
image
.grayscale() // 转为灰度图
.contrast(0.5) // 增强对比度
.write(outputPath);
}

async function recognizeCaptcha(imagePath) {
const { data: { text } } = await Tesseract.recognize(
imagePath,
'eng',
{
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
logger: m => console.log(m.status)
}
);
return text.replace(/\s/g, '');
}

(async () => {
const inputImage = 'captcha.png';
const grayImage = 'gray_captcha.png';

console.log('预处理图像...');
await preprocessImage(inputImage, grayImage);

console.log('开始识别...');
const result = await recognizeCaptcha(grayImage);

console.log(识别结果: ${result});
})();

四、运行程序

确保 captcha.png 是清晰的英文+数字验证码图像,运行脚本:

node index.js

输出示例:

预处理图像...
recognizing text
识别结果: 4kHD3

五、进阶思路

使用 Jimp 进一步做图像裁剪、噪声滤波

将识别封装为 Web API 接口(例如使用 Express)

批量处理多个验证码图像

http://www.jsqmd.com/news/49824/

相关文章:

  • 用 Rust 和 Tesseract OCR 实现英文数字验证码识别
  • 在Java中调用第三方接口并返回第三方页面
  • 251124省运会结束啦
  • 用 C# 和 Tesseract 实现英文数字验证码识别
  • 有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了
  • 11.24午夜盘思
  • Java调用第三方接口的方法
  • 2025留学代写危机应对指南:5家靠谱机构助你重返校园
  • 2025美国大学停学应对全攻略:5大靠谱机构助你重返学术轨道
  • 2025美国紧急转学机构推荐深度解析:靠谱机构认准这些核心优势,危机中重启留学之路​
  • 第35天(中等题 数据结构)
  • 2025美国留学求职机构实力解析:你的职场Offer引路人在哪?
  • Universal Fit 3-Button Metal Flip Remote Key (5pcs/lot) – KEYDIY KD NB29-3 for Euro/American Cars
  • 2025美国科研中介TOP5解析:从课题对接至成果落地全程护航
  • 根据缺少的文件查找deb包
  • 第一个Vue2程序
  • 2025美国留学生求职中介TOP5:厚仁教育领衔,精准匹配名企资源
  • CF1097F Alex and a TV Show
  • Git 最速上手
  • Ubuntu 24.04 安装 libncurses.so.5
  • Universal 3-Button Flip Remote Key for VW - 5pcs/Lot (VW Compatible, Mechanic Owner Friendly)
  • 48
  • 生成对抗网络训练优化技术解析
  • 基于相控微波光子滤波器的旋转诱导相位差解调
  • 2025.11.24博客
  • KEYDIY KD NB33-3 3-Button Universal Flip Remote Key for VW (5pcs/lot)
  • 警钟长鸣 - -Graphic
  • 博客园你好
  • 2025.11.24总结
  • 第一天—C++语法基础