【问题标题】:Find image position inside a larger image在更大的图像中查找图像位置
【发布时间】:2011-02-15 03:40:44
【问题描述】:

基本上我想在大图像中找到小图像的像素位置。 我已经搜索过类似的东西,但没有运气。

【问题讨论】:

  • 小图像会是大图像中某个区域的精确的逐像素副本吗?选择算法时比较重要。

标签: c# image-recognition


【解决方案1】:

这取决于您希望结果与查询图像匹配的相似程度。如果您尝试匹配不同逼真图像的相应部分,请查看Feature detection Wikipedia 页面。您要使用什么取决于您期望一张图像变成另一张图像所经历的转换。

也就是说,如果您正在寻找精确的逐像素匹配,那么暴力搜索可能会很糟糕。对于用于在n*n 图像中搜索的m*m 图像,这可以是O(m^2*n^2)。使用更好的算法,它可以提高到O(n^2),在像素数上是线性的。对两个图像进行下采样并进行分层搜索可能是一种不错的方法。

【讨论】:

    【解决方案2】:

    您可能可以使用AForge Framework 来执行此类操作。它提供了多种图像处理工具。可能您可以使用他们的 blob 提取来提取 blob,然后将这些 blob 与您拥有的存储图像进行比较,看看它们是否匹配。

    【讨论】:

      【解决方案3】:

      如果图像是逐像素相等的,您可以首先在小图像中搜索一个与像素 (0,0) 具有相同颜色的像素。找到后,比较小图像将覆盖的区域中的每个像素。如果没有差异,您就找到了自己的位置。否则通过搜索下一个像素匹配 (0,0) 重新开始。

      【讨论】:

        【解决方案4】:

        Booyer-Moore 如果您将像素视为字符并正在寻找精确匹配,那么这里的搜索听起来像是一个解决方案。也比每像素搜索快得多。

        【讨论】:

          猜你喜欢
          • 2016-11-23
          • 1970-01-01
          • 2013-07-14
          • 1970-01-01
          • 2012-07-05
          • 1970-01-01
          • 2011-02-12
          • 2017-10-21
          • 2023-03-22
          相关资源
          最近更新 更多