【问题标题】:template matching with rotation模板与旋转匹配
【发布时间】:2011-01-27 08:38:18
【问题描述】:

我需要做360度的模板匹配。

大部分模板为80*120,图片为640*480灰度(8位)。

对于非旋转,我使用的是 opencv cvmatchtemplate,它工作得很好。

我尝试以各种角度旋转模板并进行 cvmatchtemplate,它可以工作但耗时太多。

对于正常的模板匹配需要 12 毫秒,而对于 360 度,则需要少于 50 毫秒。

【问题讨论】:

  • 您到底想达到什么目的?也许有模板匹配的替代方案......模板是否经常更改?如果不是,您可以旋转它们并保存它们,然后使用旋转的模板。那应该更快...如果(重复)模板匹配本身花费的时间太长,您应该考虑使用另一种方法...您有示例图像吗?

标签: algorithm image-processing opencv computer-vision


【解决方案1】:

如果您将模板和图像转换为极坐标,则可以像翻译一样进行搜索。这应该快得多,因为它只是一个转换 - 您可以有效地实现它。

我认为期望获得 360 度的好结果是一项挑战。该模板必须在该转换期间发生更改。如果它只有几度,那么它不太可能改变。

查看“基于 FFT 的平移、旋转和比例不变图像配准技术”,Reddy 和 Chatterji,IEEE Transactions on Image Processing,1996 年。

【讨论】:

    【解决方案2】:

    在 Google Scholar 中搜索“合成判别函数”或“复合相关过滤器”。这是一个很好的起点:http://www.opticsinfobase.org/abstract.cfm?URI=ao-31-23-4773。如果你能找到“Correlation Pattern Recognition”这本书,第 6.2 节也解释了复合过滤器。

    主要思想是通过旋转图像生成模板并生成单个合成模板。你可以通过制定一个形式为

    的线性方程组来做到这一点
    Ax = c
    

    其中A 是从您可用的模板生成的系数矩阵。 x 是您要确定的合成模板,c 是一个约束向量。可以将约束设置为 include 一些模板和 reject 其他模板。

    问题在于,当您将太多模板组合到一个模板中时,您会开始失去匹配的性能。当然,有一些方法可以解决这个问题,具体取决于您掌握的有关您计划在其中使用合成模板的图像的其他信息。

    【讨论】:

      猜你喜欢
      • 2012-05-26
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 2018-07-15
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多