2010-11-29 59 views
0

画像処理はどのように行われますか?画像処理

私は2つの画像を比較し、それらの違いを特定したいと考えています。異なるイメージの2つのピクセルの違いを特定するにはどうすればよいですか?

+0

どの言語、プラットフォームですか? MatlabやIDLのような数値計算ツールを使用していますか? – DarenW

+0

あなたはいくつかのポインタのためにこのリンクを試すことができますhttp://stackoverflow.com/q/23931/5195 – vtbose

+1

画像はどう違っていますか?それらは構造的に類似しているか(例えば、同じ画像、異なる圧縮器)、同じ対象の異なる角度、または完全に異なるか? – misha

答えて

2

詳細は、使用している言語に依存するが、一般的にはこのようなものに動作します:

各画像は2次元配列として、プログラムで処理されますが。したがって、2つの異なるイメージに対して同じピクセル(x、yと呼ぶ)の値の差異を見つけるには、次のようなことをします。

diff = image1 [x] [y] - image2 [x] [y]

は、あなたが警戒(例えば差が署名されます)に持っているいくつかの実装の詳細がありますが、これは基本的な考え方です。

あなたはあなたが作業しているどの言語に言及した場合、私はそれが配列のように扱うことができるように画像を開く方法についていくつかのアドバイスを提供することができます。

+0

ありがとうございます.xxxxxxxxxxxxxです。私はjavaを使用すると思います。 – Nera

+0

"差分が署名されます":減算を行うときアンダーフローに注意してください – Bossliaw

1

は、単に回答1との違いを追加しないでください、または正と負の違いが相殺されます!あなたは、差の二乗またはその絶対値を合計する必要があります。 ピクセルのペアを掛け合わせ、その合計(相関)で除算することも考えられます。これらの方法は全て3

は今、技術的に正しいですが、彼らはまだ実用にはほど遠いとなります。わずかに違った照明で、同じオブジェクトの2つの画像よりも、2つの完全に無関係な画像間の差が小さいことに驚かないでください。

0

ピクセルをランダムに選択してイメージのサイズを確認します。それらが同じ場合、それらが同一であると仮定することができます。

+1

OPが画像が異なるかどうかを知りたければ、彼は 'diff'を使うことができます。迅速な比較が必要な場合は、size + md5を確認する方がずっと良いでしょう。 OPは差額を「特定」したいと思う。 –

1

「画像処理はどのように行われますか?」
回答:処理したい処理によって異なります。画像処理には何百もの操作がありますが、それぞれが完全に異なるアプローチをとっているかもしれません。唯一共通しているのは、ピクセルデータの読み込みと保存です。

「2つの画像を比較し、それらの違いを特定したいのですが、異なる画像の2つのピクセルの違いを特定するにはどうすればよいですか?

も、画像の種類についてあなたを求めて前に - 私はあなたが「2つの取ら画素の差分を特定する」ことで何を意味するのかお聞きしたいですか? 2つのイメージが異なるかどうかだけを知りたいですか?どのピクセルが違っているか知りたいですか?特定の場所のピクセルが異なるかどうかを知りたいですか?

0

ここ数週間前に行った画像処理の例です。

http://keshavsaharia.com/2011/03/17/theres-waldo-2/

これは、Mathematicaで構築され、どこのワルドのパズルを取り、ワルドを見つけるために、非常に単純な画像処理技術を使用していますいます。

イメージ処理はかなり単純な概念です。これは、ほぼ完全に、個々のピクセルを取得し、ピクセル値の数値的特性に基づいて、他のピクセル値または所定の閾値に基づいて画像全体に変換を適用することに基づいている。

MathematicaはMatlabとPythonのような画像処理のための素晴らしいツールです(Pythonソリューションを探しているならPILをチェックしてください)。画像処理ライブラリはプログラミング言語のほとんどすべてに対応しています.C++にはEasyBMP、Javaには多種多様な画像ツールがあり、すべての言語に独自の方法論があります。アプリケーションに基づいて言語を選択します。

0

あなたは画素単位で2枚の画像の単純な比較が必要な場合は、2枚の画像の各ピクセル間の差異のカウント合計のような単純なものは何もありません。このアプローチはあまり汎用性がなく、例えば照明が異なると結果に大きな影響を与える可能性があります。

イメージ比較はまだ開いている研究の問題であり、イメージマイニングタスクに関連しています。

さらに高度な画像比較が必要な場合は、画像比較のためのいくつかの高度な方法が含まれているRapidminer with IMMI拡張を試すことができます。

0

画像処理は大規模なフィールドなので、ここでの1つの答えは、画像処理について知っておくべきことをすべて教えてくれるとは思いません。多くの素晴らしい情報源と講義がインターネット上に散在しており、そこからたくさんの情報を学ぶことができます。膨大な数の信号処理技術をカバーする信号処理のための良い本(信号はほとんどのデータ型の代表例:光、音、画像など...)をご希望の場合は、Signals and Systemsをご覧ください。

しかし、イメージに適用できる基本的なプロセスを学びたい場合は、ビジュアルアーティストのために本質的に設計された処理言語(チュートリアル/学習書)をチェックし、画像処理を大幅に削減します他の言語よりも厄介な(構文上)タスク:http://processing.org/

そして、エリックは、2つのピクセルの差を計算するためにユークリッド距離を使用する権利を持っています。

+0

海賊版電子ブックサイトへのリンクを投稿しないでください。私はあなたのリンクをAmazonと交換しました。ここで実際にこの本を購入することができます。 –

+0

申し訳ありませんが、私はそれを販売しているサイトにリンクしていたと思いますが、この本のハードコピーがあり、著作権侵害 – schanq

0

画像類似性は簡単な作業ではなく、まだ開かれた研究の問題です。画素当たりの画素比較は、通常、良好な結果をもたらさず、同時に非常に時間がかかる。

アプローチの1つは、Rapidminer(オープンソースツール)を使用することです。 IMMIプラグイン(IMage MIning extension、http://splab.cz/immi)を使用したRadpiminer(広く使用されているデータマイニングプラットフォーム、http://rapid-i.com)は、同様の方法を実装しており、いくつかの重要な類似性測定を行うことができます。