バイナリイメージ登録用の2D変位ベクトルを計算する方法は?


8

私の入力は次のようないくつかのバイナリイメージです。登録する最初のバイナリイメージ登録する2番目のバイナリイメージ

それらは全体的に同じコンテンツを持っていますが、ハンドカメラから作成されているため、登録解除される場合があります。私が計算したいのは、最初の画像から2番目の画像への2D変位ベクトルです。私はOpenCVを使用しており、最初の試みは、特徴点(SURFアルゴリズム)と両方の画像間のアフィン変換を計算することでした。しかし、もちろん、特徴の説明はバイナリ画像ではやや不十分なので、マッチングは困難であり、マッチングマップは非常に不正確です。

誰か私がこれをどうやってできるのか考えていますか?

回答:


6

特徴点がうまく機能しないことに私は多少驚いています。私はあなたのような形状をどちらかを使用して登録することに成功しました

  • ハリスポイント、これはRANSACアルゴリズムと組み合わせたコーナー検出器です。ウィキまたはピーター・コヴェシのサイトをご覧ください
  • SURFやSIFTなどの特徴検出器を、特徴検出の前に画像のエッジマップと組み合わせて使用​​し、その後、何らかの形のロバストマッチングを実行します。

編集

私はそれをmatlabで試して、このテーマのいくつかのバリエーションを試しました。現在使用しています

  • エッジマップのSIFT機能は、回転とスケーリングを確認しますが、指定した画像間では非常に小さいです
  • 堅牢なマッチングのためのRANSAC
  • 2つの画像間の変換を確認する相互相関

頑強な試合 登録前 登録後

githubのソース。

RANSACの代替は、SIFTの発明者であるDavid Loweによって提案されたハフ変換の投票/ビニングアプローチです。


Harrisは知っていますが、ある画像から別の画像に同じポイントを確実に取得するための高速で堅牢なマッチングアルゴリズムがありません。... OpenCVのであるとしてプラス、RANSACは使用できません
ステファンPéchard

あなたの努力に感謝します。これを実行するための良い方法を示しています。機能の計算とマッチングはCPUに負荷がかかりすぎるため、やっと必要なことを行う方法を変更しました。とにかくありがとうございました。
ステファンPéchard

ステファン、あなたのソリューションもサイトに追加していただけませんか?
Maurits 2012年

1
まあ、問題は私が尋ねられた質問に答えないので、ここにそれを置くことは重要ではありません。私がしたことは、画像のブロブの検出と、可能な最小量のポイントによる各ブロブの説明です。2D変位で時間累積を計算したかったのですが、ブロブのベクトル記述で十分なので、これ以上は実行しません。
ステファンPéchard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.