2011-01-27 49 views
5

我需要在360度进行模板匹配。与旋转匹配的模板

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

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

我试着在各个角度旋转模板,并做cvmatchtemplate,它的工作,但消耗太多的时间。

对于正常模板匹配,需要12 ms,对于360度,需要小于50 ms。

+0

你究竟想达到什么目的?也许有一种模板匹配的替代方案...模板是否经常更改?如果没有,您可以旋转它们并保存它们,然后使用旋转的模板。这应该更快...如果(重复)模板匹配本身花费太长时间,你应该考虑使用另一种方法...你有任何样本图像? – evident 2011-01-27 09:26:46

回答

0

搜索在谷歌学术为“合成的判别函数”或“复合相关滤波器”。这是一个好的起点:http://www.opticsinfobase.org/abstract.cfm?URI=ao-31-23-4773。如果您可以找到该书“Correlation Pattern Recognition”,那么第6.2节也解释了复合过滤器。

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

Ax = c 

哪里A是从你提供的模板生成系数矩阵的线性方程组的做到这一点。 x是您要确定的合成模板,而c是约束矢量。约束可以设置为包括一些模板和拒绝其他。

问题是,当您将太多的模板合并到一个模板中时,就会开始失去匹配性能。当然,还有一些方法可以解决这个问题,具体取决于您计划使用合成模板的图像中有哪些可用的附加信息。

4

如果您将您的模板和图像转换为极坐标,您可以像进行翻译一样进行搜索。这应该会更快,因为它只是一种转换 - 您可以高效地实现这一点。

我认为,期待在360度获得好的结果是具有挑战性的。该模板在该变换过程中必须已更改。如果只有几度,那么它不太可能改变。

看看,雷迪和特吉,对图像处理IEEE TRANSACTIONS“为平移,旋转和尺度不变的图像配准基于FFT技术”,1996年。