在图像中找到相似区域的好算法?

Vog*_*gel 6 algorithm search image image-processing

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

这是我想要的一个例子:

两个图像重叠显示

我怎样才能做到这一点?

Spe*_*tre 3

  1. 分割图像

    获取已找到区域的绑定矩形/多边形/掩模

  2. 每个区域计算

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

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

    • 相关系数
    • 距离+阈值
    • 尺寸系数(纵横比、周长/面积……)
  4. 对于特定图像,您可以创建自己的自定义比较

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

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

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

  6. 旋转图像

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

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

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

  7. 多边形

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