除了 gm/node-canvas 之外 Nodejs 还有什么图像处理的包,要做验证码识别相关的开发
除了 gm/node-canvas 之外 Nodejs 还有什么图像处理的包,要做验证码识别相关的开发
今天看了一下, gm 和 node-canvas 都需要额外安装其他的依赖,所以想问一下有没有其他的比较好的图像处理的库。如果没有就只能用 python 了。
6 回复
现在是个库都有依赖,更何况你要的还是个图像处理的
这个识别的话还是上 c/c++吧, 验证码识别都一般是私活才要用到吧.
能问下么,啥工作要用到这技术呢,我想了解下.
自己写的练手爬虫项目,做模拟登陆想要自动识别验证码。目前只能 down 下来图片然后人工输入,太低端了。
https://www.npmjs.com/package/deathbycaptcha
自动识别+人工识别
识别准确率 94%+
在Node.js中,除了gm和node-canvas之外,还有多个图像处理包可用于验证码识别相关的开发。以下是一些推荐的图像处理包及示例代码:
-
Jimp
Jimp是一个功能强大的图像处理库,支持多种操作,如灰度化、二值化等,非常适合验证码图片的预处理。
const Jimp = require('jimp'); async function preprocessCaptcha(inputPath, outputPath) { const image = await Jimp.read(inputPath); image.greyscale(); // 灰度化 image.threshold({ max: 128 }); // 二值化 await image.writeAsync(outputPath); }
-
tesseract.js
tesseract.js是一个OCR库,基于tesseract-ocr封装,支持在Node.js环境中进行文本识别。
const Tesseract = require('tesseract.js'); async function recognizeCaptcha(imagePath) { const { data: { text } } = await Tesseract.recognize(imagePath, 'eng'); return text.trim(); }
-
node-gd-bmp
node-gd-bmp是一个专为Node.js设计的扩展库,支持高效读取、操作以及写入BMP格式的图像文件。
const gdBmp = require('node-gd-bmp'); gdBmp.load('path/to/your/image.bmp', function(err, image) { if (err) throw err; // 对图像进行操作 });
这些库各有特色,开发者可以根据具体需求选择合适的库进行验证码识别相关的开发。