macでOpenCV2.3.1+Python
OpenCVをPythonで使いたい!!ってことで入れてみました。
事前準備
前OpenCVは入れていたので、いろいろ省略。
ビルド
いつもはcmake-guiを使うんだけど、PythonのPATHの設定方法がいまいちわからなかったので、コマンド実行しました。
*ここを参考にさせて頂きました
http://rest-term.com/technote/index.php/OpenCV%20-%202.x
cmake
こんな感じになりました。
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/usr/local/bin/python -D PYTHON_LIBRARY=/usr/local/Cellar/python/2.7.2/lib/libpython2.7.dylib -D PYTHON_INCLUDE_PATH=/usr/local/Cellar/python/2.7.2/include/python2.7/ . -- Extracting svn version, please wait... -- SVNVERSION: exported -- Detected version of GNU GCC: 42 (402) -- checking for module 'libdc1394-2' -- package 'libdc1394-2' not found -- checking for module 'libdc1394' -- package 'libdc1394' not found -- Found PythonLibs: /usr/local/Cellar/python/2.7.2/lib/libpython2.7.dylib -- Use NumPy headers from: /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/numpy/core/include Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named sphinx CUDA_TOOLKIT_ROOT_DIR not found or specified -- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version "4.0") -- Parsing 'cvconfig.h.cmake' -- -- General configuration for opencv 2.3.1 ===================================== -- -- Built as dynamic libs?: YES -- Compiler: /usr/bin/c++ -- C++ flags (Release): -Wall -pthread -O3 -DNDEBUG -fomit-frame-pointer -msse -msse2 -DNDEBUG -- C++ flags (Debug): -Wall -pthread -g -O0 -DDEBUG -D_DEBUG -ggdb3 -- Linker flags (Release): -- Linker flags (Debug): -- -- GUI: -- Cocoa: YES -- -- Media I/O: -- ZLib: YES -- JPEG: TRUE -- PNG: TRUE -- TIFF: TRUE -- JPEG 2000: TRUE -- OpenEXR: NO -- OpenNI: NO -- OpenNI PrimeSensor Modules: NO -- XIMEA: NO -- -- Video I/O: QTKit -- -- Other third-party libraries: -- Use IPP: NO -- Use TBB: YES -- Use ThreadingFramework: NO -- Use Cuda: NO -- Use Eigen: NO -- -- Interfaces: -- Python: YES -- Python interpreter: /usr/local/bin/python -B (ver 2.7) -- Python numpy: YES -- Java: NO -- -- Documentation: -- Sphinx: NO -- PdfLaTeX compiler: NO -- Build Documentation: NO -- -- Tests and samples: -- Tests: YES -- Examples: YES -- -- Install path: /usr/local/opencv -- -- cvconfig.h is in: /Users/ogata/opencv/OpenCV-2.3.1_build -- ----------------------------------------------------------------- -- -- Configuring done -- Generating done -- Build files have been written to: /Users/ogata/opencv/OpenCV-2.3.1_build
よし、PythonのPATHがちゃんと通ったぞっ(^-^)
make & make install
普通にmakeしましょう。
しかしビルド早いなぁー。昔は1時間ぐらいかかってた気がするー
実行してみる
とりあえずimport
$ python Python 2.7.2 (default, Jan 7 2012, 15:15:33) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 Segmentation fault: 11
あれれ?動かない^^;
$ ls /usr/local/opencv/lib/ libopencv_calib3d.2.3.1.dylib libopencv_flann.dylib libopencv_ml.2.3.dylib libopencv_calib3d.2.3.dylib libopencv_gpu.2.3.1.dylib libopencv_ml.dylib libopencv_calib3d.dylib libopencv_gpu.2.3.dylib libopencv_objdetect.2.3.1.dylib libopencv_contrib.2.3.1.dylib libopencv_gpu.dylib libopencv_objdetect.2.3.dylib libopencv_contrib.2.3.dylib libopencv_highgui.2.3.1.dylib libopencv_objdetect.dylib libopencv_contrib.dylib libopencv_highgui.2.3.dylib libopencv_ts.2.3.1.dylib libopencv_core.2.3.1.dylib libopencv_highgui.dylib libopencv_ts.2.3.dylib libopencv_core.2.3.dylib libopencv_imgproc.2.3.1.dylib libopencv_ts.dylib libopencv_core.dylib libopencv_imgproc.2.3.dylib libopencv_video.2.3.1.dylib libopencv_features2d.2.3.1.dylib libopencv_imgproc.dylib libopencv_video.2.3.dylib libopencv_features2d.2.3.dylib libopencv_legacy.2.3.1.dylib libopencv_video.dylib libopencv_features2d.dylib libopencv_legacy.2.3.dylib pkgconfig/ libopencv_flann.2.3.1.dylib libopencv_legacy.dylib python2.7/ libopencv_flann.2.3.dylib libopencv_ml.2.3.1.dylib
うん、Pythonあるぞ?
。。。
あぁ、PATHか。
ということで、PATHを通す
export PYTHONPATH=$PYTHONPATH:/usr/local/opencv/lib/python2.7/site-packages/
動いた(・∀・)
OpenCV同梱のPythonのサンプルを動かしてみる
とりあえず、カメラでも動かしてみよう。
import cv2.cv as cv import time cv.NamedWindow("camera", 1) capture = cv.CaptureFromCAM(0) while True: img = cv.QueryFrame(capture) cv.ShowImage("camera", img) if cv.WaitKey(10) == 27: break
これを実行
python camera.py
なんか画面に顔がー!!誰だー!
あ。自分か(´・ω・`)
ということでおしまい!