2012-02-19 64 views
6

画像でわかるように、これらの輪郭を比較したいと思います。OpenCV ||輪郭類似度

contours

私はこれらの輪郭を相互に比較した場合、私のOpenCVのプログラムがTRUEを返す必要があります。 彼らはすべて同じように見えますが、あなたが見ることができる通り、まったく同じではありません。

結果は、findContours関数から返された結果です。

私はこれらの輪郭の類似性のための適切なアプローチを探しています。

何か助けが素晴らしいだろう。

ありがとうございます。

答えて

5

cvMatchShapes()(以前はcvMatchContours()でした)を見てください。

+0

ありがとうございました! 私はすぐにそれを得るでしょう。 私はK Nearest Neigbourメソッドを使用することを考えていましたが、OpenCVで正しく実装する方法がわかりません。 –

+0

喜んで。完了:-) –

+0

Adi、cvMatchShapesの使い方を教えてもらえますか?私がベクトル>で満たされた輪郭でそれを実行しようとすると、私は次のようになります:OpenCV Error:アサーションに失敗しました。前もって感謝します。 –

5

matchShapes()関数を使用するには、引数としてvector<Point>,vector<Point>を渡す必要があります。 輪郭コンテナではありませんが、輪郭線は特にありません。比較しようとしている図形が1つの等高線である必要があります。

+0

ありがとうございました!愚かな私のミス:-) ベクトル<ベクトル>の代わりにベクトルです。 –