今年の前半に発表された画像をリサイズするためのアルゴリズム「Seam Carving」。画像の横幅を変えても、メインになり得る部分を自動で認識し、そこを維持してくれる。
Untitled 3 Thumbnail

Youtubeの動画にもアップされているので、見たことがある人も多いのではないだろうか。リアルタイムで縮小されていく様は相当なインパクトだ。アルゴリズム自体はそれ程複雑でもないらしく、実装している人も多くいる。その一つを紹介しよう。

今回紹介するオープンソース・ソフトウェアはseam-carver、CUIベースで動作するSeam Carvingだ。

seam-carverはPPMファイルを読み込んで、解析と新しいファイルの生成を行う。デフォルトでは元の横幅から20ピクセル減らした所まで1ピクセルずつ生成していく。そこを適当に変更すれば、自分好みの画像も生成できる。
ピクチャ 3-42

できあがった画像を見れば分かるが、非常に良く出来ている。きちんと目立つ部分は目立つように仕上がっている。また、画像の解析した結果である二値下したデータや、雷のように線が入った画像(恐らく生成する際の基準になり切れ目)も生成される。
ピクチャ 6-32

PPMはImageMagickを使えば変換できる。一度お試しあれ。

seam-carver - Google Code
 http://code.google.com/p/seam-carver/