画像処理Tweetこんにちは、牧野です。最近、夏みたいに暑い日が続いていますね。今日は、これからオフィス移転のための引越準備です。このブログをアップしたら、本格的に片付けです。今回は、趣味のプログラミングです。前からやってみたいと思っていたネタがあったので、それを作ってみました。それは、小さな画像を並べて、全然別の大きな画像を作る、というものです。今回は、次のような処理の流れににしました。1.ミニ画像の元となる画像をたくさん用意し、ミニ画像を作成。2.再現したい大きな画像を用意して、小さく分割。3.分割した各画像について、ミニ画像の中から一番似ている画像をピックアップ。4.ピックアップした画像を並べて、新しい画像を作成。今回のプログラムの要になるのが、「ミニ画像の中からどうやって一番似た画像を見つけるか」というところになります。各ピクセルのRGBの平均、とかやると全然ダメそうな気がしたので調べてみると、いいロジックがありました。http://d.hatena.ne.jp/aidiary/20091003/1254574041画像ごとに、各ピクセルの色分布を用意し、一番近い色分布の画像を選ぶ、というものです。2つの画像の色分布の、同じ分布位置の数のうち、小さい方を選んでいって合計する、というのに一瞬あれ?と思ったのですが、色分布の合計は画像のピクセル数になるので、納得です。作ったプログラムがこちらです。common.phpcreate_mini_pic.phpcreate_resemble_pic.phpimagickとGD両方使っていたり、コマンドのエスケープをしていなかったり、エラー処理がなかったりしますが、目をつむる方向で。ミニ画像を作るための画像は、会社の誕生日会や社員旅行の写真を使用しました。(約100枚)ミニ画像を作ってながめてみると、色に相当偏りがあります。オレンジや茶色の暖色系が多かったので、再現したい画像も同じような色合いのものを選びました。できた画像がこちらです。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。