coursera Algorithmsの課題として、Seam Carving(シームカービング)というアルゴリズムをJavaで実装をした。

写真の縦横幅をトリミングではなくて、見た目的に違和感なくリサイズする技術。2007年に世に出たという、新しめの技術。詳しくはYoutube動画を参照。

アプリなど

iPhoneやAndroidアプリでこういう変換アプリがあればよさそうと探してみたところ、Androiidアプリはすでにある模様。

また、フリーソフトもある。

iPhone写真を変換

というわけで、Javaで実装したコードでiPhoneで撮影した写真を変換してみたので作品紹介。画像データをDAGなグラフと見立てて、端から端で色のグラデーションが少ない部分を幅優先探索で検索するとできる。

ここでは、512x 384 px 画像を、正方形に変換してる。

変換前

beaf_512_384

変換後

beaf_384_384

変換前

cafe_512_384

変換後

cafe_384_384

変換前

sushi_512_384

変換後

sushi_384_383

魔法みたいで面白い!