質問

これはかなり広範な質問です。同一ではないが非常に似ている2つの写真を撮影し、それらの間の特定の違いを識別するためのツール/ライブラリは何ですか?

例としては、金曜日に私のガールフレンドが掃除をした後、友人を飲み、ロックバンドを演奏する長い週末の前に私のソファの写真を撮ることです。 2日後、ソファの2枚目の写真を撮ります。照明は同じで、ソファはミリを動かしておらず、固定された場所で三脚を使用しています。

画像の差分、または差分の3番目のヒートマップ画像を生成するには、どのツールを使用できますか? .NET用のツールはありますか?

役に立ちましたか?

解決

CodeProjectのAndrew Kirillovの記事をご覧ください。彼は AForge.NET コンピュータービジョンライブラリを使用して動きを検出するC#アプリケーションを作成しました。 AForge.NET Webサイトには、2つのフレームの違いのディスカッションがあります。モーション検出用。

他のヒント

これは、画像形式と圧縮に大きく依存します。ただし、1日の終わりには、おそらく2つのラスターを取得し、ピクセルごとに比較しています。

知覚的画像差分ユーティリティをご覧ください。

通常、ごくわずかな差をすべて表示する最も明白な方法は、ピクセルデータをXORすることです。ただし、照明が少しでも異なる場合は、大きすぎる可能性があります。ピクセルデータの差分(減算)は、差分の微妙さによっては、探しているものよりも多くなる可能性があります。

開始する1つの場所は、 IM などの豊富な画像処理ライブラリを使用することです。 。 IMlab ツールを使用して、演算子をインタラクティブに操作するか、CまたはC ++から直接呼び出すか、 Luaからそれを駆動するための本当にまともなLuaバインディング。ビットマップの幅広い操作と、ファイル形式の拡張可能なライブラリをサポートしています。

意図的に何も移動していない場合でも、などのアルゴリズムを使用できます。 SIFT を使用して、フレーム間のサブピクセル品質の良好なアライメントを取得します。カメラを固定されたものとして扱い、ソファの動きも検出する 場合を除きます。

この無料の.NETアプリケーションは、会社が作成したツールキット(DotImage)を使用して作成しました。非常にシンプルなアルゴリズムを備えていますが、コードは遊びたい場合はオープンソースです。DotImageのコピーを購入したくない場合は、アルゴリズムを.NET Imageクラスに適合させることができます。

http:/ /www.atalasoft.com/cs/blogs/31appsin31days/archive/2008/05/13/image-difference-utility.aspx

これは興味深い質問です。特定のライブラリを紹介することはできませんが、質問しているプロセスは基本的に動き補償の最小限のケースです。これは、MPEG(MP4、DIVXなど)ビデオが非常にうまくビデオを圧縮する方法です。これらの動き補償アルゴリズムの実装方法に関する情報については、MPEGをご覧ください。

もう1つ注意すべき点があります。 JPEG圧縮はブロックベースの圧縮です。 MPEGがもたらすメリットの多くは、実際にブロック比較を行うことです。画像のほとんど(たとえば背景)が画像間で同じ場合、それらのブロックは変更されません。比較する必要があるデータの量を減らすための簡単な方法です。

.netイメージングクラスを使用して、新しいbitmap()x 2を作成し、R& G&各ピクセルのB値。差を判断するときに必要な場合は、A(アルファ/透明度)値を確認することもできます。

また、getPixel(y、x)メソッドを使用すると非常に遅くなる可能性があり、画像全体を取得する別の方法があります(エレガントではありません)似たようなものは、イメージング/ビットマップクラスを見てください&必要なチュートを読んでください。使用するのはそれほど難しくありません。必要でない限り、サードパーティに行ってはいけません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top