2011-11-23 218 views
7

我在两个图像上找到了具有相同对象的轮廓,我想查找这个对象的位移和旋转。我尝试过使用这个轮廓的旋转边界框,然后是它的角度和中心点,但是边界框的旋转不能正确地告诉轮廓旋转,因为它对于角度a + 0,a + 90,a + 180等是一样的。度。 找到轮廓的旋转和位移是否有其他好方法?也许有些使用凸包,凹凸缺陷?我读过关于匹配轮廓的学习OpenCv,但它没有帮助。有人可以举一些例子吗?轮廓匹配 - 找到轮廓位移

//编辑: 也许有某种方法可以使用类似于弗里曼连锁的东西来做到这一点?但我目前无法弄清算法。使链条与序列点之间存在角度,然后检查序列匹配是不行的...

+0

在dsp.stackexchange.com上可能会更好 – endolith

回答

3

如果对象具有凸度缺陷,那么您可以选择一个缺陷,从第一个轮廓的质心到质心创建一个矢量的缺陷。 然后,您可以检查第二个轮廓中的缺陷并匹配您使用过的轮廓中的缺陷。从轮廓质心到匹配缺陷质心的矢量。

从这里你得到2段(向量),你可以从中获得位移和旋转。

+0

但我想知道它是否会对所有类型的轮廓都有效?例如,要检测非常简单的形状如方形等 – krzych

+0

这就是为什么我说如果它有缺陷,如果对象是正方形或圆形或其他基本形状,您将需要另一种方法。 – Adrian