何の前処理も行わずにキーポイント検出器を入力に適用することは、関連する興味深い一致点を見つけるための非常に貧弱な方法です。
画像が与えられると、数学的形態学はそれらを前処理するための優れたツールを提供し、うまくいけば後のステップでより良い一致を得られます。これらのツールの 1 つは形態学的再構成と呼ばれ、その一般化はレベリングと呼ばれ、マーカー イメージに基づいてフラット ゾーンを結合および拡張します。ご覧のとおり、画像はどこにでも谷 (暗い点) があるという意味で非常にノイズが多いため、そのほとんどを抑制したいと考えています。レベリングの実装はまったく難しいことではありませんが、私は自由に利用できるツールを知らないので (実際にはフランスで開発された大規模なフレームワークがあり、それが含まれていると思われますが、名前は覚えていません)、そのままにしておきましょう。より標準的な形態学的再構成。マーカー画像もありませんが、簡単に作成できます。いくつかの構造化要素で画像を浸食し、形態学的再構築を適用します。これは、一部の著者によって測地線開口部と呼ばれています。これにより、ノイズの多い谷の一部が抑制されます。
この時点で、画像はいくつかのキーポイント検出器で使用するのに適しているかもしれませんが、一致させたいものはグレースケール トーンとは無関係であるため、画像を 2 値化することをお勧めします。これに対する典型的な自動方法は Otsu によって与えられていますが、Kapur の方法のようにヒストグラム エントロピー最小化を行う方法もあります。私は Otsu を使用しませんでした。これは非常に一般的であるためです。いくつかの Stackoverflow ノベルティのために、この別の方法を使用しました :P (はい、非常に悪い理由です)。最後に、二値化の後、画像の処理を続行できます。いくつかの残りのノイズ ポイントを削除する必要があるため、ここでは 1 つのモルフォロジー クロージングで十分な場合があります (これらのノイズ ポイントは必ずしもコンポーネントから切り離されているわけではないため、コンポーネントを削除することは、現時点では悪い選択になる可能性があります)。
手短に言うと、最初の画像のジオデシック オープニングと最終的な前処理 (上記のポイントを使用) は次のとおりです。
そして、これが他の2つの画像の最終結果です(まったく同じプロセスを適用し、一定の変更などはありません):
ここで、典型的な SURF 法を使用してこれらを照合すると、ほぼ完全な一致が得られ、他の問題 (一方を他方に対して方向付ける) を非常に簡単に解決できます。私が得たマッチングの結果は含めません (誰かが結果を比較したい場合を除きます)。これは、OpenCV またはその他の適切な実装を使用して同じ結果が得られるはずだからです。
重要な場合は、上記の前処理を実現する Mathematica の単一行を次に示します。
g = Closing[Binarize[GeodesicOpening[f, DiskMatrix[5]], Method -> "Entropy"], 1]
ここf
で、 はグレースケールの入力画像で、g
は結果のバイナリ イメージです。