模板与旋转匹配

时间:2011-01-27 08:38:18

标签: algorithm image-processing opencv computer-vision

我需要在360度进行模板匹配。

大多数模板是80 * 120,图像是640 * 480灰度(8位)。

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

我试着以各种角度旋转模板并进行cvmatchtemplate,它正在工作但耗费了太多时间。

对于正常模板匹配,它需要12毫秒,而对于360度小于50毫秒需要。

2 个答案:

答案 0 :(得分:4)

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

我认为期望获得360度的好成绩是一项挑战。在转换期间,模板必须已更改。如果它只有几度,则不太可能改变。

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

答案 1 :(得分:0)

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

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

的线性方程组来实现这一点
Ax = c

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

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