輪郭のグループを比較するための最良の戦略は何かを知りたいのですが、実際には、どちらのペアがより類似しているかを知るために、2つの写真からのキャニーエッジ検出の結果であるエッジです。
私はこの画像を持っています:
http://i55.tinypic.com/10fe1y8.jpg
そして、これらのどれがそれに最もよく合うかをどのように計算できるか知りたいです:
http://i56.tinypic.com/zmxd13.jpg
(右側にあるはずです)
とにかく全体として輪郭を比較することはありますか?画像を簡単に回転させることはできますが、右側の参照画像が最適であると計算するためにどの関数を使用すればよいかわかりません。
これが私がopencvを使ってすでに試したことです:
matchShapes関数-2つのグレースケール画像を使用してこの関数を試しましたが、すべての比較画像で常に同じ結果が得られ、値が0,0002であるため、値が間違っているように見えます。
したがって、matchShapesについて私が気付いたのは、それが正しい仮定であるかどうかはわかりませんが、関数は完全な画像ではなく、輪郭のペアで機能するということです。比較したい画像の輪郭はありますが、それらは数百であり、どれを「ペアリング」する必要があるのかわからないため、これは問題になります。
そのため、最初の画像のすべての輪郭を他の2つの輪郭と繰り返し比較しようとしましたが、たとえば、5の輪郭を2つの参照画像の円の輪郭と比較している可能性があります。2つの輪郭は比較していません。
また、単純なcv :: compare関数とmatchTemplateを試しましたが、どれも成功しませんでした。