画像の比較

楽天の間違い探しのクイズが有ったので画像処理を試してみました。

問題のページから画像をコピーして
pngtopam false.png > false.pam
pngtopam true.png > true.pam
でnetpbmで扱うフォーマットに変更します。

pamarith -compare true.pam false.pam > compare.ppm
で画像間の演算をします。
最初は二つの画像の差分をとればいいと思い-subしましたが、
true.pam false.pam
false.pam true.pam
の2回して結果を加算となるので、-compareを使います。
-compareは、出力がpamでなくppmです。

ppmtogif compare.ppm > compare.gif
でプレビューで表示できるフォーマットにします。

open compare.gif
結果を表示して、間違い箇所を数えて終わりです。

他の方法として
pamarith -xor true.pam false.pam > xor.pam
pamtopng xor.pam > xor.png
open xor.png
一致部分が0(黒)になるので、色がつく部分が不一致になります。
この方が演算量が少ないと思います。

追記
画像サイズを変えて出題されました。
[~/tmp]pamfile *.pam
false.pam: PPM raw, 640 by 480 maxval 255
true.pam: PPM raw, 800 by 600 maxval 255

サイズが違うとpamarithが使えないので小さい方を拡大します。
[~/tmp]pnmscale 1.25 false.pam >false1.pam

[~/tmp]pamfile *.pam
false.pam: PPM raw, 640 by 480 maxval 255
false1.pam: PPM raw, 800 by 600 maxval 255
true.pam: PPM raw, 800 by 600 maxval 255

間違い箇所の参考程度にはなりました。

コメントを残す

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