除了 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之外,还有多个图像处理包可用于验证码识别相关的开发。以下是一些推荐的图像处理包及示例代码:

  1. 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);
    }
    
  2. 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();
    }
    
  3. 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;
        // 对图像进行操作
    });
    

这些库各有特色,开发者可以根据具体需求选择合适的库进行验证码识别相关的开发。

回到顶部