画像の違いを ImageMagick でビジュアル化

スクリプト
スポンサーリンク

画像処理ソフト ImageMagick を使って,二つの画像の差分をビジュアル化する方法について紹介します.

スポンサーリンク

はじめに

例として,次のような間違い探し画像の違いを自動検出してみます.

間違い探し(a)

間違い探し(a)


出力は次のようになります.画像の中で赤色や青色になっている部分が違いがある部分になります.
差分画像

以下,環境の整備から順に説明していきます.

準備

ImageMagick をインストールします.
Windows の場合はいろいろファイルがありますが,普通に使う分には差がありませんので,一番上にあるものを選んでおけば OK.

インストールする際に「Add application directory to your system path」にチェックするのを忘れずに.

ImageMagick インストール
Download ページから「ImageMagick-XXX-Q16-x64-dll.exe」(XXX はバージョン番号)

青赤画像の生成

まず,比較対象の画像(a.jpg, b.jpg)を次のような赤色画像(a_red.png)と青色画像(b_blue.png)に変換します.

間違い探し(a) 赤画像

間違い探し(b) 青画像


これには,コマンドプロンプトから以下のコマンドを実行します.

ちなみに,コマンドプロンプトはエクスプローラでフォルダを選択した状態で Shift を押しながら右クリックで出てくる「コマンドウィンドウをここで開く」を選択することで開けます.

差分画像の生成

続いて以下のコマンドを実行することで,冒頭の差分画像が生成できます.

原理

画素ごとに色の乗算(Multiply)を行うことで,差分をビジュアル化しています.

白色,赤色,青色に対して乗算を行うと以下のようになります.

従って,赤色画像と青色画像の乗算を行うと,一致している部分は黒色になり,不一致箇所は赤色や青色になります.

自動化

作業を自動化するスクリプトを紹介します.
以下の内容を img_diff.bat という名前で保存し,img_diff.bat a.jpg b.jpg と実行すれば OK.

冒頭に記載してある ImageMagick のパスは,インストールしたフォルダに書き換えてください.

コメント