ちょっと気になることがあったので,ImageMagickの画像の拡大縮小のアルゴリズムを調べてみた.
どうやら窓関数を用いた畳込み積分により実現しているらしい.窓関数は以下の種類があるようだ.Gaussianが非常にあやしい形をしているので間違っているのかもしれない.
どうも尖りすぎてると,エイリアシングが発生し画像がジャギジャギになり,かといって横に広いとリンギングノイズが発生するらしいけど,正直よくわからない.エイリアシングの原因が高周波成分であることは理解できるのだが.一部のフィルタの周波数特性は,ここなどで確認できるようだ.
ちなみにデフォルトでは,Lanczosが選択される.convertにおいては-resizeの前に-filterにより指定することで,他のものに変更することができる.
この中には負になる場所を持つ窓関数もある.そのような関数を用いて,グレーの中に一点だけ黒があるような画像を縮小すると,縮小後の画像では黒い点のあった場所のまわりにまわりより明いグレーが出現する.
追記.単純な画像な拡大結果を見るとImageMagickのgaussianフィルタはどうもそういうものであるようだ.
2006-04-16 (日) 23:43:50 | カテゴリ:メモ | No Comments »
You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.



