ImageMagickを使ってステルス迷彩に挑戦してみた
OpenCVで顔認識できるようになったら、それを加工したくなるってのが人情ってもの…。という事で、今度はImageMagickを使って、画像の加工を色々やってみました。
まずは、PHPからImageMagickを使って画像加工するやり方。
PHPから使う為には、エクステンションが必要になります。
$ pecl install imagick
最新版だと、PHP5.1.3以上が要求されるようなので注意。
で、色々試していたんですが、今回はPHPのサンプルは無し…。PHPからの使い方は、マニュアルなぞをご参照下さい。(^^;ゞ
途中で、PHPからではなく、ImageMagickを直接コマンドラインから利用する方で楽しくなってしまったので、今回は、そちらのご紹介です。
ImageMagickをインストールすると、convertとかcompositeとかっていうコマンドが使えるようになります。簡単な使い方なんかは、ImageMagickによる基本的な画像処理が参考になるかと思います。
ImageMagickの各コマンドのマニュアルはImageMagick - Command-line Toolsで見る事ができます。(英語です。)
さて、画像加工の手段を手に入れたところで今回やってみたのは、ステルス迷彩っぽい写真を作る事です。このページを見て、「これって写真を上手く編集すればステルス迷彩っぽい写真ができるんじゃね?」って思ってしまったのがきっかけです。(笑)
原理としては、物体が有る時の写真と、物体が無い背景だけの写真の差分を取って、透明度を高くしてから背景だけの写真に貼り付ければ、ステルスっぽくなるはずです。
で、まずは携帯を使って、適当に部屋の隅の方をバックにして背景だけの写真を撮った後、自分が入り込んでセルフタイマーでもう1枚撮ります。この写真は顔バレしちゃうので、公開しません。(笑)
まず、2つの写真の差分を取ってみます。
$ compose=Colorize $ composite -compose $compose input1.jpg input2.jpg out.jpg
$composeというのは、2枚の写真を合成する時の方法を決めるオプションで、かなり色々用意されています。ここでは"Colorize"を指定しています。どのオプションが使えるかは、
$ convert -list composite
と実行すると一覧を見る事ができます。
んで、一通り全てのオプションについて試してみたところ、中には案外、これだけでステルス迷彩っぽくなったのもあったので、これはこれでありかなと。
オプションに"Displace"を指定したのがこれです。これがかなりステルスっぽくて自分的にはヒットでした。
続いて、オプションに"Colorize"を指定したのがこちら。ちょっと全体的に荒くなっちゃってますが、これもボヤ〜っとした感じがなかなか素敵。
これは"Lighten"を指定したもの。結構いい感じに透けてはいますが、はっきりし過ぎちゃって、ステルスっぽさが無いのが難点。
と、こんな感じで、本来の目的が何だったかよく覚えてないんですが(笑)、ImageMagickを使うと、画像加工で結構色々遊べそうです。( ̄ー ̄)
これで、また一つ、オモチャが増えました。(笑)
あとがき…。
画像貼るのに手間取って思いもよらず時間が掛かってしまった…。はてなフォトライフって写真の撮影時刻を元にファイル名が管理されるから、同じ写真から加工した画像だと撮影時刻がダブっちゃって、上書きされちゃうのね…。(>_<)