2012-08-07 40 views
2

我有一组连续的点,这使得一个2D形状,我有另一个可能会做出类似的形状,但这种形状是不同的规模和旋转从最后一个。匹配和计算这两个形状的相似度得分的最佳方法/选项是什么?在C++中的2D形状匹配

+0

如果我正确地理解了你,正如你所知道的比例因子和方向(旋转),那么使它们对于两个形状都是相同的,然后比较点坐标。或者在每个点的比较例程中使用比例和方向(所以在比较之前“翻译”点) – Zilog 2012-08-07 21:04:27

+0

我不知道比例和方向,我想我可以找出它。但是这不会重新发明轮子?我正在寻找一些我可以参考的现有解决方案。 – rajat 2012-08-07 21:14:49

回答

0

经过几天的研究,我发现最好的东西是$1 gesture recognizer,它是规模和旋转不变的,并且在包括C++在内的许多语言中也有实现。

2

比较每个形状的顶点处的角度。如果它们一一匹配,那么形状是相似的。在此过程中,您可能必须“旋转”其中一个形状。记住类似三角形的角度一一匹配。

+0

我错过了一件事,那就是你还应该检查'匹配'边缘的比例。它应该是不变的! – Gus 2012-08-09 21:34:22

+0

如果角度匹配的比例是恒定的! – Gus 2014-01-07 06:13:01