基本的に、大きな画像内の小さな画像のピクセル位置を見つけたいと思っています。これに似たものを探しましたが、運がありませんでした。
4 に答える
結果をクエリ画像とどの程度類似させたいかによって異なります。さまざまな写実的な画像の対応する部分を一致させようとしている場合は、Wikipediaの特徴検出ページを参照してください。何を使用するかは、一方の画像が他方の画像になるために予想される変換によって異なります。
とはいえ、ピクセルごとの正確な一致を探している場合、総当たり検索はおそらく悪いです。これはO(m^2*n^2)
、m*m
画像内の検索に使用される画像の場合がありn*n
ます。O(n^2)
より良いアルゴリズムを使用すると、ピクセル数で線形に改善できます。両方の画像をダウンサンプリングし、階層的な検索を行うのが良い方法かもしれません。
ピクセルを文字として扱い、正確な一致を探している場合、ここではBooyer-Moore検索が解決策のように思えます。ピクセルごとの検索よりもはるかに高速です。
おそらく、AForge フレームワークを使用して、このようなことを行うことができます。さまざまな画像処理ツールを提供します。おそらく、ブロブ抽出を使用してブロブを抽出し、それらのブロブを保存済みの画像と比較して、一致するかどうかを確認できます。
画像がピクセルごとに等しい場合、小さな画像のピクセル (0,0) と同じ色を持つ 1 つのピクセルを検索することから始めることができます。見つかったら、小さな画像でカバーされる領域の各ピクセルを比較します。違いがない場合は、自分の位置を見つけました。それ以外の場合は、次の一致するピクセル (0,0) を検索することからやり直します。