アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

久々の趣味プログラミング

森川です。

今回は秋元さんのブログをみて興味がわき、休日に趣味プログラムしてみました。

題材は、話題?のSeam Carvingです。あまり時間もとれなかったので、論文の最初に出てくるseamの削除しかやっていません。というかそれ以上のことを実装しようとすると、1日ではできません。。。

最初は難しいのかなと思ったのですが、意外や意外、すんごく簡単でした。でもPHPで実装したら、メモリ消費量がとんでもないので、実際の画面は公開できません。

せっかく実装したので、ソースコードだけアップロードします。

seam.php

energy functionをひょっとしたら勘違いしているかもしれません。中心のコンテンツが大部分を占めるような画像ではあまり綺麗にリサイズできません。それと人間の顔も変な風になります(本家のほうでは顔認識と組み合わせているようです)。

もっと効率的にできると思うのだけど、中々どうしてよいアルゴリズムが浮かびませんでした。。。

とりあえず、わりと高速なサーバを持っていれば1分以内には結果が返ってくると思います(メモリは100Mくらい消費します)。

Flashで実装している人もいるようなので、真似してみたい人はアルゴリズムの参考程度にしてみてください。