2012-08-07 68 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