Node.js 从图像中读取数据并在节点js中裁剪图像的某些部分

Node.js 从图像中读取数据并在节点js中裁剪图像的某些部分,node.js,machine-learning,automation,ocr,Node.js,Machine Learning,Automation,Ocr,我的客户要求用户使用该图像上传图像,我必须读取数据并裁剪图像的某些部分。我可以使用节点模块从图像中读取数据。裁剪部分也是这样做的,它只适用于某些图像,而不适用于所有图像。下面是获取数据表单图像的代码 const Tesseract = require("tesseract.js"); Tesseract.recognize("./pancard.jpg", "eng", { logger: m => console.log(m) }).then(({ data: { text } }

我的客户要求用户使用该图像上传图像,我必须读取数据并裁剪图像的某些部分。我可以使用节点模块从图像中读取数据。裁剪部分也是这样做的,它只适用于某些图像,而不适用于所有图像。下面是获取数据表单图像的代码

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) {});
  });
上面的代码为下面的图像工作良好,我能够得到该特定图像的签名。

但同样的代码不适用于下图。

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


注*:图像来自谷歌。

这一切都取决于图像,使用sharp,您可以提供一个视图框来裁剪图像,但如果提供的图像是旋转的,您的代码将无法用于第一个图像。我认为您需要某种类似opencv的ml驱动库,或者将viewbox设置得足够大以捕获签名。

如果印度政府ID上的签名面板总是在同一个位置,只裁剪同一个viewbox不是更容易吗?而不是试图检测viewbox。这将是我的MVP,如果以后需要动态,那么它需要某种计算机视觉库,能够将签名与ID的其他部分区分开来。

图像包含真实人物的个人数据。请模糊个人可识别数据。@AbhikSarkar图像已经出现在谷歌上。