2つの画像がどれくらい似ているかを客観的に比較したいことがあります。よく使われているSSIM指標とPSNR指標の計算方法について説明します。
SSIM指標の範囲は、0.0〜1.0です。1.0に近いほど似ています。また、0.98以上で、目視で見分けがつかないぐらい同じだそうです。
PSNR指標の範囲は、0〜無限大です。大きいほど似ています。
http://www.jiima.or.jp/pdf/5_JIIMA_guideline.pdf によると、
PSNR | SSIM | 主観評価 |
40〜 | 0.98以上 | 元画像と区別がつかない |
30〜40 | 0.90〜0.98 | 拡大すると劣化がわかる |
〜30 | 〜0.90 | 明らかに劣化がわかる |
ImageMagick同梱のcompareコマンドでSSIM計算できます。
$ compare -metric SSIM a.jpg b.jpg NULL:
0.354226
Code language: Bash (bash)
PSNR計算もできます。
$ compare -metric PSNR a.jpg b.jpg NULL:
16.8201
Code language: Bash (bash)
計算できる指標の一覧を表示します。
Ubuntu 18.04のImageMagickは6.9.xなので、SSIM計算できませんでした。
$ compare -version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
...
Code language: Bash (bash)
$ compare -list Metric
AE
Fuzz
MAE
MEPP
MSE
NCC
PAE
PHASH
PSNR
RMSE
Code language: Bash (bash)
macOSにインストールしたImageMagickは、7.0.8でした。SSIM計算できました。
$ compare -version
Version: ImageMagick 7.0.8-47 Q16 x86_64 2019-05-30 https://imagemagick.org
Code language: Bash (bash)
$ compare -list Metric
AE
DSSIM
Fuzz
MAE
MEPP
MSE
NCC
PAE
PHASH
PSNR
RMSE
SSIM
Code language: Bash (bash)