如何动态查找图像中的主要矩形图像?

How to dynamically find main rectangular image within an image?

我想截一张图片,然后从截图中提取图片。

例如:

我想从屏幕截图中动态提取该图像。但是,我希望能够动态检测要提取的图像在屏幕截图图像中的位置。因此,例如,如果我在 Instagram 上截图了一张图片,我想从截图中动态提取图片。所以我觉得我只需要想出一个计算来找到截图图像中的“主体”在哪里。

我做了一些研究,但我发现的大部分内容都是人们想要从扫描图像中提取图像,其中主体周围的一切大部分都是纯色,所以我认为这不会在这里工作。

我正在使用 Jimp (https://www.npmjs.com/package/jimp) 作为图像处理器,因为它没有本机依赖项,​​这将进入 React Native 应用程序。

如有任何帮助,我们将不胜感激。提前致谢!

我从来没有找到已经存在的东西,所以我自己做了一些东西。使用我的 img-items 节点模块,我可以通过执行以下操作来完成此操作:

const Jimp = require('jimp')
const imgItems = require('imgItems')

Jimp.read('image.png')
  .then(image => {
    return imgItems(image)
      .then(items => {
        const largest = items.reduce((p, c) => ((p.width + p.height) > (c.width + c.height)) ? p : c)

        return image
          .crop(largest.left, largest.top, largest.width, largest.height)
          .writeAsync('largest.png')
      })
  })