久しぶりにOpenCVを動かす必要があり、試しにOpenCV2.4で顔認識を動かしてみました。
まず、C言語版。
1.OpenCVのインストール
これまでと手順は一緒。バージョンは2.4になっているので、それに応じた変化のみ。
- opencv-doc
- python-opencv
- libcv2.4
- libhighgui2.4
- libcvaux2.4
- libcv-dev
- libcvaux-dev
- libhighgui-dev
- libopencv-dev
2.プログラムの作成
これも前回までと同じ。opencv.jp のサンプルプログラムをコピペして、main.cという名前で保存する。
元のままだと、大きなサイズの画像は画面をはみ出してしまうので、ウインドウサイズを指定するように変更・追加した。(cvNamedWindow の第2パラメータ変更、cvResizeWindowの追加)
// (6)画像を表示,キーが押されたときに終了 cvNamedWindow ("Face Detection", 0); cvResizeWindow("Face Detection", 640, 480); cvShowImage ("Face Detection", src_img); cvWaitKey (0);
3.コンパイル
これも前回までと同じ。以下のコマンドによりコンパイル。インクルードファイルやライブラリの位置は pkg-config で勝手に探してもらう。
$ g++ -o main main.c `pkg-config --cflags opencv` `pkg-config --libs opencv`
4.カスケードファイルの準備
ここは前回とことなる。カスケードファイルは一つになっている。
$ cp /usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml .
としてローカルディレクトリにコピーした。
5.動作テスト
$ ./main ファイル名.jpg(pngでもOKでした)
でWindowが表示されて検出された顔に◯がついた。
6.Python版
opencv.jp のサンプルプログラムのところにある「Python版に切り替え」というボタンを押した後、コードをコピペして、main.pyという名前で保存して、
$ chmod 755 main.py
として実行権限をつけて、
$ ./main.py ファイル名.jpg
と実行したところ、冒頭のimportで失敗します。原因調査の時間はないので、また今度・・・。