2009-05-18 18 views
1

2つの画像は同じ色、パターンなどです。一方の画像は他方の画像から切り取られます。私が見つけたアルゴリズムでは、画像の違いを比較するために場所を使用することがほとんどなので、トリミングされた画像に対して誤った結果が生成されます。それらの2つのイメージを知る方法は似ていますか?クロップド類似画像の検索

ありがとうございます。

答えて

1

問題のドメインについて詳しく知ることは役に立ちます。たとえば、切り取ったサンプルが100枚の画像のどれから来たのかを調べようとしていますか?または、切り抜かれたサンプルがあなたの図書館の画像から来るかどうか分からないのですか?

私は画像処理の専門家ではありませんが、私は1つまたはいくつかのもので作業しました。最初に気になるのは、ある種の色平均化を試みて、可能性の高い候補を見つけるためのヒューリスティックを作成できるかどうかを調べることです。

クロップされたサンプルの平均RGBを探します。次に、サンプルと一致するかどうかを調べるには、イメージのいくつかの点でローカルRGBカラー平均を探します。トリミングされたRBGの平均が画像内のすべてのローカル平均値から離れすぎている場合は、関連性が高いとは限りません。

候補者を絞り込んだら、正確な場所を見つけるのは難しいでしょう。サブサンプリングされたバージョンの画像を処理してみてください。元の場合。画像は2000x2000、サブサンプルは両方の画像を10で200x200のメイン画像を取得します。クロップされた画像と同じサブサンプルを実行して、どこに最適な画像が得られるかを確認します。その後、サブサンプリングの量を繰り返し減らし、切り取った画像の正確な位置を微調整します。あなたはまだ力強い力を発揮していますが、画像の100倍小さいです。

0

Yikes!私は何年も前にこのことに頭を打ち、私の問題のための実行可能な答えを思いついたことはありません。

平均的なRGB値についてのAl Crowleyのステートメントには同意していません - トリミングは可能でしょうか?ターゲットとはかなり異なるオブジェクトを削除することが非常にうまくいきます。

さらに、画像を8x8サムネイル(人間の目には十分ではない)に縮小し、各コンポーネントの差の2乗を取ることは、重複を取り除くのには非常に良い仕事であり、縁の周りの作物。理想的には、サムネイルを行う前にコントラストを正規化する必要がありました。私はそれをやりませんでした。低コントラストの画像がたくさんあると宣言していました。この方法では、1画像につき192バイトしか使用しないため、O(n^2)アルゴリズムでも大量の画像を比較することができます。 (いつでもプログラムを閉じることができるようにして、状態情報をダンプしてシャットダウンし、次に中断したところから再開します)

画像のテスト作物のセットを取って、それぞれの作物との比較を試みる傾向があります。可能性の高い候補を見つけたら、大きな画像で作業を開始し、数ピクセルをジョギングして、それが良くなるか悪くなるかを見て絞り込んでみてください。私はそのようなルーチンから非常に遅い性能以外の何かを想像することはできません。

+0

私の答えではっきりしていないかもしれません...私は、切り抜かれたサンプルが全体から非常に異なる平均RGBを持つことに同意します。 私が提案したかったのは、元の画像のいくつかの正確なサイズのクロッピングのRGB平均を取ることでした。したがって、200x200のクロップと1000x1000のイメージを持っている場合、異なる200x200のサブイメージの50のRGB平均を元のイメージから取り除くことができます。たとえあなたが本当に幸運なことがない限り、平均が正確に一致しない限り、あなたはまだ正しいですが、結果が十分に近い場合、その画像をより詳細に調査することができます。 –

+0

私が言っていることは、サムネイルを比較すると、* MILDLY *を切り抜いた画像を扱ってもかなりうまくいくことが判明したことです。 –

1

恐ろしいかもしれませんが、SIFTアルゴリズムをチェックします。パノラマ用の画像を並べるときに一般的に使用されるものです。

+0

これは過剰です:) –

2

詳細情報を提供する必要がありますが、相互相関アルゴリズムを使用することはできますか?基本的には、トリミングされた画像を画像のすべての点にスライドさせて一致させ、類似点を見つけます。特定のしきい値を超えて一致する点がある場合は、小さい方の画像がその場所の大きな部分のサブセットであると見なすことができます。

実際にスライドさせるのではなく、FFTアルゴリズムを使用して処理を高速化することができます。あなたが最良を見つけるために)MinMaxLoc(その後、OpenCVの、あなたが欲しい機能がMatchTemplate(ある)を使用している場合はRegistering an Image Using Normalized Cross-Correlation

alt text http://www.mathworks.com/products/demos/image/cross%5Fcorrelation/imreg5.png

0

ウィキペディアは、この "phase correlation"

MATLABの例を呼び出します一致。

関連する問題