情報理論基礎の課題1をImageMagickで片付ける

課題内容はたしかこんな感じ

  1. .jpg圧縮できるソフトウェアのインストール
  2. 圧縮率を変えて、結果を比較する
  3. 圧縮直後のPSNRをグラフ化

PSNRはCでも十数行できるみたいだけど、
ImageMagickは便利なので入れといて損はないと思う。

ImageMagickのインストール

圧縮率を指定してjpeg圧縮

$convert -quality 50 lena_std.tif lena_50.jpg

PSNRを算出

$compare -metric PSNR lena_std.tif lena_50jpg difference.png

これを圧縮率10~90まで繰り返し

<?php

for ($i = 1; $i < 10; $i++) {
    exec('convert -quality '. $i*10 .' lena_std.tif lena_'. $i*10 .'.jpg');
    exec('compare -metric PSNR lena_std.tif lena_'. $i*10 .'.jpg difference.png');
}

?>

グラフ作る

標準出力に表示される値をExcelにコピペして、
グラフ作っておしまい。

http://img.f.hatena.ne.jp/images/fotolife/m/muranoki3/20101028/20101028205627.png

「こんなグラフで大丈夫か?」

http://dic.nicovideo.jp/oekaki/263151.png

「大丈夫だ、問題ない」