OpenCVをインストールしただけでは面白く無いので、早速使ってみることにしました。まずは画像をぼかしてみようと思います。
import cv
_image = cv.LoadImage(元画像ファイルパス)
_clone = cv.CloneImage(_image)
cv.Smooth(_image, _clone, 1, 5, 0, 0, 0)
cv.SaveImage(加工後画像の保存先ファイルパス, _clone)
これだけです。OpenCVのバージョンによって多少扱い方が異なります。今回はOpenCV2.2です。
Smoothの最初の引数が元画像、次が加工先。3番目が平滑化方法で、0〜4で指定します。詳しいパラメータの詳細はこちらで。
これが元画像で、

こちらが加工後のぼかされた画像

ぼかし具合はパラメータいじると調整できます。
OpenCVはちょっととっつきにくいですが、できることが多くて楽しいです。
画像変換処理をいろいろやっているとPILでは物足りなくなってくる時があります。ImageMagickでもよかったのですが、ここがOpenCVを導入してみることにしました。
インストールは簡単、MacPortsを使います。最近はHomebrewが流行りっぽいのですが、特にMacPortsで困っていなかったのでMacPortsのままで。
sudo port install opencv +python27
なんという簡単さ。これだけでOpenCVがインストールできてPythonからさわれるようになります。MBAで30分ちょっとでインストールは完了です。
Pythonを起動して、
import cv
と叩いてエラーが出なければOKです。
先日のOpenCVを利用したARコンテンツで書いたアフロジェネレータを公開してみようかと。
先にお伝えしておきます。精度はぜんぜんまだまだです。顔の位置判定にしくじることも結構多いです。が、まずは実績として公開してしまおうと思いました。
「そんなもん公開すんなボケ」という方、ごめんなさい。
使い方は簡単。afro-gen[at]tt-house.comに写真を添付してメールするだけです。アフロヘアーになった写真が返信されてきます。(さすがにスパムが怖いのでアットマークは伏せました。[at]をアットマークに替えてください。)
ごめんなさい、現在公開停止中です。
左側がアフロ後、右側がアフロ前。これは手での修正は入れてません。100%ツールによるものです。写真によっては結構うまくいくんですよねー。(オバマ大統領の写真、まずいかなぁ。FBIとか家に来たらどうしよう)
あ、ちなみに送っていただいたメールアドレスは保存してません。ので、後から広告メールが配信されるとかスパムが配信されるとかはないです。Gmailでしかテストしてないので、クライアントによっては件名が化けるかもしれません。あと、本文にはなにもないメールで、写真だけが添付されています。
何種類かヘアスタイル用意しておいてルーレット、っていうのも面白いかもですね。
もしお試しいただけて、さらに気が向いたら感想なんかいただけると非常にうれしいです。ただの罵詈雑言だと泣き崩れるのでできれば勘弁してください。
OpenCVというのは「Open Computer Vision Library」の略でして、画像の変換だったり、ヒストグラムの抽出だったり、画像の判定だったりができちゃうもので、インテルが開発したOSSです。
で、ヒストグラムの抽出ができると、「色合いが似た画像」を抽出できます。
画像の判定は学習させることができるので、風船が写った写真1,500枚と写ってない写真1,500枚で「風船」というものを抽出するパターンを学習させて、学習結果から写真の中から「風船がある場所の座標、大きさ」を抽出することができるんです。
風船の場所、大きささえわかれば、その風船にフェイスマークをプログラムで書き足すこととかは可能ですよね。
世の中に出回ってるARコンテンツって、こういう技術の活用なんじゃないかなと。
ハセテツはOpenCVを使って顔の位置を判定、事前に用意しておいたアフロヘアーの画像をかぶせることに成功したのであります。つまり、アフロジェネレータ。w
メールで自分の写真を添付するとアフロになって返ってくる。アフロヘアーな自分。
別にアフロヘアーになりたかったわけではないんです。これができたということは、美容院向けのARコンテンツができる、ちゅーことなんです。ホットペッパーにでも営業しようかな。
さらに、リアル着せ替え人形も可能ですよね。自分の写真使っていろんな服着てみるの。フランス王朝風だったり、十二単だったり、現実では着ることのできない試着が可能です。楽天にでも営業しようかな。
なんて、いろいろとやりたい思いだけがつのる今日この頃でした。アフロジェネレータはもうちっとクオリティを上げてから公開しよう思います。