6

私はこの問題に似たようなことをしています: 曲線パターンを画像の端に一致させる

基本的に、2 つの画像に同じ曲線がありますが、2 つの画像の間にアフィン変換があります。2 つの画像の例を次に示します。

ここに画像の説明を入力 画像1

ここに画像の説明を入力 画像2

したがって、Image2 に到達するために、Image1 に移動、回転、スケールなどを適用できます。

この変換を解決する方法を知っている人はいますか?

平行移動だけではないので、位相相関は機能しません。移動、回転、スケールを解決するのに十分な詳細がないため、オプティカル フローは機能しません (ほとんどバイナリ イメージです)。ハフ変換で良いデータが得られるかどうかはわかりません。

4

1 に答える 1

2

sift や surf のようなある種のキーポイント マッチング アルゴリズムは、この種のデータでも機能すると思います。基本的な考え方は、各画像で限られた数の「興味深い」キーポイントを見つけ、これらのキーポイントをペアで一致させることです。

以下は、オンライン ASIFT デモを使用したイメージの簡単なテストです

ここに画像の説明を入力

おそらく通常のグレースケール画像により適していますが、それでもこのデータではうまくいくようです。線は両方の曲線の周りでほぼ同じ点を結んでいるように見えます。これらすべてのペアを OpenCv のFindHomography関数のようなものに差し込むと、小さな不一致が均等になり、2 つの画像間のアフィン変換行列が得られます。

特定のデータについて、より適切なキーポイント記述子を思いつくことができる場合があります。おそらく、線の端、線の交差、鋭い角を検出するためのものです。

または、これはどうでしょうか。もう少し作業が必要ですが、パスをベジエまたは B スプラインにベクトル化できれば、スプライン記述子からいくつかの自然なキーポイントを取得できます。
私はベクトル化ライブラリを知りませんが、Inkscapeにはアプローチをテストできる基本的な実装があります。大きな 2D ビットマップではなく小さな記述子のセットを取得したら、FindHomography に従って、これらの記述子を 2 つの画像間で一致させるだけで済みます。


コメントへの回答:

関心のあるポイントは、特定のプロパティを持つ単なる小さな領域です。したがって、これらの領域の中心は黒または白になる可能性があります。アルゴリズムは、白いピクセルや曲線などの大規模な形状を特に探しません。問題は、少なくとも一見しただけでは、線が両方の曲線のほぼ同じ点を結んでいることです。

于 2013-01-25T22:12:38.383 に答える