2枚の画像のdiff(差分)を超簡単に調べる方法

Githubで画像の差分を見られるモードが話題を呼びましたが、このように2枚の画像の差分を調べたいときって時々ありますよね。
そんなときImageMagickのコマンドラインツールを使えば、たった1行で実現できます。

$ composite -compose difference A.jpg B.jpg diff.jpg

とすれば、A.jpg と B.jpg の差分画像 diff.jpg が作られます。この差分画像は以下のようになります。
f:id:mirakui:20110326110732p:image
さらにこの差分画像(diff.jpg)が「真っ黒な画像」かどうかも、コマンドラインで調べることができます。

# 差分がなかった場合(=diff.jpgは黒一色の画像)
$ identify -format "%[mean]" diff.jpg
0
# 差分があった場合
$ identify -format "%[mean]" diff.jpg
960.891

ここでは、画像をグレースケールで見たときの平均画素値(0(黒)〜65535(白))が出力されます。なので、この値が 0 より大きかったら、真っ黒な画像ではない=差分があったとみなすことができます。

なにかと使い道があると思うので覚えておいて損はないんじゃないですかね。