首页 > 解决方案 > 从图像中读取数据并在节点js中裁剪图像的某些部分

问题描述

我的客户要求用户使用该图像上传图像,我必须读取数据并裁剪图像的某些部分。我可以使用tesseract.js节点模块从图像中读取数据。裁剪部分也已完成,它仅适用于某些图像,不适用于所有图像。下面的代码来获取数据形式的图像。

const Tesseract = require("tesseract.js");

Tesseract.recognize("./pancard.jpg", "eng", {
  logger: m => console.log(m)
}).then(({ data: { text } }) => {
  console.log(text);
});

对于裁剪图像,我正在使用锐利节点模块。下面的代码基本上在调整图像大小后调整图像大小,裁剪特定数据。

const sharp = require("sharp");
sharp("./pancard.jpg")
  .resize(500, 300, {
    fit: sharp.fit.fill
  })
  .toFile("./pancard_new.jpg", (err, info) => {
    sharp("./pancard_new.jpg")
      .extract({ left: 35, top: 220, width: 180, height: 28 })
      .toFile("./pancard_new2.jpg", function(err) {});
  });

上面的代码适用于下面的图像,我能够获得该特定图像的签名。 图片

但相同的代码不适用于下图。 其他图片

基本上我想从这些图像中裁剪签名。如果有人知道如何从哪里开始执行上述任务,请帮助我。

注*:图片来自谷歌。

标签: node.jsmachine-learningautomationocr

解决方案


这一切都归结为图像,您可以提供一个视图框来裁剪图像,但如果提供的图像被旋转,您的代码也不适用于第一张图像。我认为您的用例需要某种 ml 驱动的库,例如 opencv,或者将视图框设置得足够大以捕获签名。


推荐阅读