OpenCV 1.0.0 で遊ぶ
なんとなく気になってたので OpenCV 遊んでみた
OpenCV は MacOS X でも遊べるらしいので落としてきてビルドしてみた。ココから辿って落として来たのはココ1.0をダウンロード。
インストール方法はココで確認。事前に入れるものがあれこれあるのね。Mac で必要なのはとりあえず pkgconfig, tiff/jpg/png のライブラリ。まずはそっちを MacPorts で先に入れる。
macBook:~ paraches$ sudo port install pkgconfig ---> Fetching pkgconfig ---> Attempting to fetch pkg-config-0.21.tar.gz from http://mirror.opensysadmin.com/pkg-config/ ---> Verifying checksum(s) for pkgconfig ---> Extracting pkgconfig ---> Configuring pkgconfig ---> Building pkgconfig with target all ---> Staging pkgconfig into destroot ---> Installing pkgconfig 0.21_0 ---> Activating pkgconfig 0.21_0 ---> Cleaning pkgconfig macBook:~ paraches$ sudo port install jpeg libpng tiff ---> Fetching jpeg ---> Attempting to fetch jpegsrc.v6b.tar.gz from http://www.ijg.org/files ---> Verifying checksum(s) for jpeg ---> Extracting jpeg ---> Applying patches to jpeg ---> Configuring jpeg ---> Building jpeg with target all ---> Staging jpeg into destroot ---> Installing jpeg 6b_1 ---> Activating jpeg 6b_1 ---> Cleaning jpeg ---> Fetching libpng ---> Attempting to fetch libpng-1.2.18.tar.bz2 from http://downloads.sourceforge.net/libpng ---> Verifying checksum(s) for libpng ---> Extracting libpng ---> Configuring libpng ---> Building libpng with target all ---> Staging libpng into destroot ---> Installing libpng 1.2.18_0+darwin_8 ---> Activating libpng 1.2.18_0+darwin_8 ---> Cleaning libpng ---> Fetching tiff ---> Attempting to fetch tiff-3.8.2.tar.gz from ftp://ftp.remotesensing.org/pub/libtiff/ ---> Verifying checksum(s) for tiff ---> Extracting tiff ---> Configuring tiff ---> Building tiff with target all ---> Staging tiff into destroot ---> Installing tiff 3.8.2_0+darwin_8 ---> Activating tiff 3.8.2_0+darwin_8 ---> Cleaning tiff macBook:~ paraches$ cd myTest/
どれもさっくりインストール終了。
次はダウンロードした OpenCV のインストール。まずはダウンロードしたファイルを展開。
macBook:~/myTest paraches$ tar zxvf opencv-1.0.0.tar.gz opencv-1.0.0/ <省略> opencv-1.0.0/utils/unix2dos.py macBook:~/myTest paraches$ cd opencv-1.0.0 macBook:~/myTest/opencv-1.0.0 paraches$ ls AUTHORS NEWS autotools cxcore opencv.spec.in COPYING README configure data otherlibs ChangeLog THANKS configure.in docs samples INSTALL TODO cv interfaces tests Makefile.am aclocal.m4 cvaux ml utils Makefile.in apps cvconfig.h.in opencv.pc.in macBook:~/myTest/opencv-1.0.0 paraches$
次に ./configure で設定。ここで prefix を MacPorts の include と lib にしておく。--with-python は python で遊びたい時に入れておく。
macBook:~/myTest/opencv-1.0.0 paraches$ ./configure --with-python CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" checking build system type... i386-apple-darwin8.9.1 <省略> General configuration ================================================ Compiler: g++ CXXFLAGS: -Wall -fno-rtti -pipe -O3 -g -march=prescott -ffast-math -fomit-frame-pointer Install path: /usr/local HighGUI configuration ================================================ Windowing system -------------- Use Carbon / Mac OS X: yes Use gtk+ 2.x: no Use gthread: no Image I/O --------------------- Use libjpeg: yes Use zlib: yes Use libpng: yes Use libtiff: yes Use libjasper: no Use libIlmImf: no Video I/O --------------------- Use QuickTime / Mac OS X: yes Use xine: no Use ffmpeg: no Use dc1394 & raw1394: no Use v4l: no Use v4l2: no Wrappers for other languages ========================================= SWIG Python yes Additional build settings ============================================ Build demo apps yes Now run make ... macBook:~/myTest/opencv-1.0.0 paraches$
ん? 最後のまとめのところの Video I/O、ffmpeg が no だな〜。インストールはされているんだけどな…。ま、Video I/O は QuickTime でやってくれるから良いけど。
無事に ./configure も済んだので次は make。
macBook:~/myTest/opencv-1.0.0 paraches$ make make all-recursive Making all in cxcore Making all in src <省略> macBook:~/myTest/opencv-1.0.0 paraches$
これもサクっと終了。順調、順調。
最後に make install。
macBook:~/myTest/opencv-1.0.0 paraches$ sudo make install Making install in cxcore Making install in src test -z "/usr/local/lib" || /bin/sh ../../autotools/mkinstalldirs "/usr/local/lib" <省略> test -z "/usr/local/include/opencv" || /bin/sh ./autotools/mkinstalldirs "/usr/local/include/opencv" test -z "/usr/local/lib/pkgconfig" || /bin/sh ./autotools/mkinstalldirs "/usr/local/lib/pkgconfig" mkdir /usr/local/lib/pkgconfig /usr/bin/install -c -m 644 'opencv.pc' '/usr/local/lib/pkgconfig/opencv.pc' macBook:~/myTest/opencv-1.0.0 paraches$
OpenCV のインストールはひとまず完了。
で、今度は遊んでみるのにサンプルをコンパイルしてみる。いっぺんに全部コンパイルできると楽チン。
macBook:~/myTest/opencv-1.0.0 paraches$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig macBook:~/myTest/opencv-1.0.0 paraches$ cd samples/c macBook:~/myTest/opencv-1.0.0/samples/c paraches$ sh build_all.sh compiling camshiftdemo.c compiling contours.c compiling convert_cascade.c compiling convexhull.c compiling delaunay.c compiling demhist.c compiling dft.c compiling distrans.c compiling drawing.c compiling edge.c compiling facedetect.c compiling ffilldemo.c compiling fitellipse.c compiling houghlines.c compiling kalman.c compiling kmeans.c compiling laplace.c compiling lkdemo.c compiling minarea.c compiling morphology.c compiling motempl.c compiling pyramid_segmentation.c compiling squares.c compiling blobtrack.cpp compiling image.cpp compiling inpaint.cpp compiling letter_recog.cpp compiling mushroom.cpp compiling watershed.cpp macBook:~/myTest/opencv-1.0.0/samples/c paraches$
問題なく終了したらとりあえず遊んでみる。
macBook:~/myTest/opencv-1.0.0/samples/c paraches$ ./facedetect ./mySample.jpg
顔認識をネットから拾ってきた画像でやってみた。結果、デジカメの CM でやってるみたいにちゃんと認識できるもんなんだね。
この facedetect は引数なしで実行すると MacBook に標準装備の iSight からの入力を使ってリアルタイムで認識をしてくれる。自分が動いてもちゃんと自分の顔を認識し続けるのは凄い!横を向いたりすると駄目になるけど…
他にもあれこれ面白いサンプルがたくさんで結構遊べる〜!
lkdemo の night mode on で auto-initialize するのが 3D データ作ってるっぽくて好き。