Mac で画像を比較して差分があるかどうか調べる方法

Mac で画像の差分を調べるには Terminal を使うのが簡単です。cmp コマンドや md5 コマンドを使うことで差分の有無を知ることができます。また ImageMagick をインストールし、compare コマンドを使うことで画像同士のどこに差分があるかを画像として知ることができます。

今回は Mac で画像A と画像B を比較する方法についてお話します。

違いの有無を簡単に調べる方法 (1)

まず、違いの有無を簡単に調べる方法から。

Terminal

1.Terminal を起動します。
2.以下のコマンドを実行します。

cmp 画像Aのパス 画像Bのパス

コマンド、画像のパスそれぞれの間にある半角スペースを忘れずに。
画像のパスは Terminal に画像を ドラッグ & ドロップ することで入力できます。

差分があれば<.strong>以下のように異なるバイト位置が表示されます。

画像Aのパス 画像Bのパス differ: char 3788, line 32

違いの有無を簡単に調べる方法 (2)

手元のパソコンに入っているデータならこれで良いのですが、
別のパソコンや遠隔地にあるデータを比較するのはちょっと面倒です。
そんなとき、もし厳密な比較でなくとも良ければ
cmp ではなく md5 でも概ね代用できます。

1.Terminal を起動します。
2.以下のコマンドを実行します。

md5 画像Aのパス

すると以下のように画像A を表す値が得られます。

MD5 (画像Aのパス) = 4554091ede38b3cbbcb8951641bcb5dd

画像B についても同様に値を得ます。

MD5 (画像Bのパス) = c19f6abf52c905f3940552a9c78a293f

これらの値が異なれば差分があると判断します。

具体的にどこが違うのか調べる

画像に違いがあるかどうかではなく、
どこに違いがあるかを知りたい場合もあります。
そんなときは以下のようにして簡単に調べることができます。

imagemagick
http://cactuslab.com/imagemagick/

0.ImageMagick をインストールします。(初回のみ)
1.Terminal を起動します。
2.以下のコマンドを実行します。

/opt/ImageMagick/bin/compare 画像Aのパス 画像Bのパス 比較結果画像のパス(保存先)

比較結果画像は断り無く上書きされますので注意して下さい。

compare

間違えて上書きすることがないように、
例えばデスクトップに compare という
フォルダを作ってそこで作業するなどします。
仮に compare フォルダ内の a.png と b.png を比較し、
その結果を c.png として保存するとします。

その場合は
1.Terminal を起動します。
2.以下のコマンドを実行して compare フォルダへ移動します。

cd Desktop/compare

3.以下のコマンドを実行します。

/opt/ImageMagick/bin/compare a.png b.png c.png

c.png に比較結果の画像が上書きされます。
ファイルが無い場合は生成されます。

ImageMagick での比較結果

以下の3つの画像を ImageMagick で比較した場合の結果を例示しておきます。

a
a.png

b1
b1.png (copyright のタイプミス)

b2
b2.png (a.png を一度 jpg に変換し、再度 png とすることで変質させてもの)

c1
a.png と b1.png を比較すると
タイプミスの部分は色が不一致なので
差分を示す赤色がつくことで浮き彫りになります。

c2
a.png と b2.png を比較すると
肉眼では同じに見えても厳格には色が一致しないため
全般的に差分を示す赤色がつきます。

なるべく簡単に画像の差分を調べたい人のお役に立てば幸いです。

お問い合わせについて

業務として技術コンサルティングやシステム設計・開発を行っております。
気になることがありましたらご相談下さい。
ご相談のみで完結する場合、コンサルティング費用の目安は
内容によりますが1時間で5千円〜1万円ていどです。
コンサルティングや開発を検討されるその前に、
まずはお気軽にコメントやメールでご連絡下さい。
ご契約前のコメントやメールでのやりとりは無料です。

お問い合わせフォーム

お急ぎの場合など、ただちに業務対応が必要な場合は、こちらのお問い合わせフォームをご利用ください。かきしちカンパニーお客様窓口が直ちに対応いたします。
※窓口へのお問い合わせ、お見積もりは無料です。


お名前 (必須)

メールアドレス (必須)

題名

メッセージ本文 (必須)

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*