【问题标题】:Good algorithm to find similar areas in images?在图像中找到相似区域的好算法?
【发布时间】:2015-02-19 12:39:41
【问题描述】:

我想在两张图片中搜索相似区域,但我不知道哪种方法效果最好。 这些区域不会以任何方式缩放或转换,但可能会出现在两个图像中的任何位置(我想知道在哪里)。他们周围还有其他东西。

这是我想要的一个例子:

我该怎么做?

【问题讨论】:

  • 我不是这方面的专家,但我认为这种算法很大程度上取决于图像的格式。您打算使用特定格式,还是需要通用格式?
  • 嗯-您的示例删除了右下角的浅蓝色位。那仍然被认为是“相同的”吗?即,矩形空间是否相关?
  • @Jongware:我只关心坐标。考虑使用图像 2 中的坐标将其从图像 2 中裁剪出来 :) 是的,我只是在搜索矩形。
  • 是的,这有点蓝。所以 exact 矩形是不一样的。
  • 我编辑了您的示例图片以更好地反映您的陈述。不过,这个问题还是太笼统了。 (1) 白色背景在这张图片中非常很重要——颜色采样应该可以很好地工作,但仅限于这些图片。 (2)红圈在两幅图中并不完全相同。图 2 中的那个高 2 个像素。矩形需要有多“相似”?

标签: image algorithm search image-processing


【解决方案1】:
  1. 分割图像

    获取已找到区域的绑定矩形/多边形/蒙版

  2. 每个区域计算

    • 直方图
    • FFTDCT 并过滤掉不重要的数据(主要是高频......类似于 JPEG 压缩)
    • 尺寸(宽度、高度、面积、周长...)
  3. 查找匹配项

    所以比较图像之间的每个区域。将来自 #2 的数据作为单个数据集处理,并根据以下一项计算比较区域之间的相似性:

  4. 对于特定图像,您可以创建自己的自定义比较

    • 例如这里是我的OCR
    • 如果您想要相同的尺寸,那么您可以轻松添加尺寸比较 +/- 一些阈值
  5. 提高精度

    您可以将每个区域划分为几个子区域并计算 #2 以获得更强大的数据集,但要注意旋转。

    此外,如果您的分割是基于颜色同质性系数,那么您也可以将其包含到数据集中

  6. 旋转图像

    为此,您需要使用独立于旋转的功能,例如:

    • 直方图
    • 颜色均匀度
    • 对不随同心圆旋转的子区域使用形状...

    或者找到基本特征/边缘并旋转一个图像以匹配另一个位置......

  7. 多边形

    对于多边形图像,您可以将图像矢量化回矢量形式,然后使用任何polygon comparison 算法

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 2010-09-09
    • 2012-12-12
    • 1970-01-01
    • 2020-08-01
    • 2014-06-22
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多