macbookでopencv
先日購入したmacbookにopencvをインストールしました。ものすごく簡単で感動的でした。
インストール
macportsからインストールするだけです。
$ sudo port install opencv
このコマンドひとつでokです。カメラとの接続も、iSightを自動的に認識してくれるようなので、ほんとうに簡単。linuxのときの苦労はなんだったんだろうかという気になってきます。
バージョンは1.0.0なので、新しいもので遊びたい人はsourceForgeからソースを落としてくる必要があります。またインストールには結構時間がかかりました(1時間くらい?)。
サンプルプログラムを動かす
早速cのサンプルプログラムを動かしてみましょう。portからのインストール先は/opt/local/以下になります。サンプルプログラムは/opt/local/share/opencv/samples/c/にあります。とりあえずホームに作業ディレクトリを作ってコピーします。
$ cd $ mkdir opencvWorks $ cd opencvWorks $ cp -r /opt/local/share/opencv/samples/c/ .
次はコンパイルです。サンプルプログラムはいろいろあるのですが、opencvといえば顔検出ということで、今回は顔検出のプログラムにしてみます。プログラム名は facedetect.cです。
$ gcc -o facedetect facedetect.c -lcv -lcxcore -lcvaux -lhighgui -L/opt/local/lib -I/opt/local/include/opencv
いろいろ書いてありますが、ライブラリ4つ(cv, cxcore, cvaux, highgui)をリンクし、ライブラリとヘッダファイルのパスを指定しているだけです。
これでコンパイルできました。動かしてみましょう。
$ ./facedetect --cascade="/opt/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml"
これで動きます。自動的にiSightが起動し、顔検出をして、顔の部分に赤い丸が描かれていると思います。何かキーを押すと終了します。ちなみに引数のcascadeというのは、顔検出のアルゴリズムに必要なデータです。
笑い男
顔検出といえば、べたですが、やっぱり笑い男ですよね。というわけで作ってみました。facedetectのサンプルプログラムを改良し、丸のかわりに笑い男のロゴを描画するようにすれば、笑い男が目をハックしているような映像が簡単に作れます。