3

2 つの画像 (ビットマップ) を比較して、同じかどうかを確認する効率的な方法はどれですか?

文書化しようとしましたが、両方の画像のサイズを約 16x16px に変更する必要があることを読みましたが、期待した結果が得られません。

.Equals を使用してサイズ変更された画像を比較しようとしました:

    If img1.Equals(img2) then 
        msgbox("are equals!")
    End if

AForge画像ライブラリを見てきましたが、画像を比較する方法が見つかりません。

ピクセルごとの画像比較器をハードコーディングせずに、.NET クラスまたはサードパーティのライブラリを使用して効率的な画像比較を行う方法はありますか? そうでない場合、画像を比較する関数の例はありますか?

4

1 に答える 1

1

要件と同等の意味について慎重に考える必要があります。ピクセルごとの直接比較を行っている場合は、これを支援する多数の .net 画像クラスを見つけることができます (私は .net の専門家ではありませんが、ここで画像比較を試して、画像間の類似性のパーセンテージを見つけてください) 。

もちろん、単純な直接画像差分を実装するのはかなり簡単です。上記の SO 回答のチュートリアルで説明されている、差 < しきい値のわずかな差を許容することもできます。ちなみに、この回答にはSIFTについても言及されていますが、言及するまでは気づきませんでした。SIFT は、要件によっては優れたツールです。

SIFT サードパーティ ツールは、わずかに異なる画像を比較するのに最適な方法ですが、.net インターフェイスを提供しているかどうかわからないため、システム コールを行う必要がある場合があります。SIFT 実装の決定的な Web サイトは次のとおりです。http://www.cs.ubc.ca/~lowe/keypoints/

私はインターネットでこれを見つけました: http://www.nowozin.net/sebastian/tu-berlin-2006/libsift/これは ac# 実装であると主張しています。

于 2013-10-18T17:30:46.700 に答える