Python+OpenCV+brew on Mavericksの環境構築
ハマりました。
どうやらpyenvとOpenCVの仲が非常に悪いらしい。
なので、とりあえずpyenvを一回止めて、systemのpythonにOpenCVを入れるところから始めました。
pyenvをインストールしたときに.bash_profileか.bashrcあたりのどこかに
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi export PATH=$HOME/.pyenv/bin:$PATH export PATH="$HOME/.pyenv/shims:$PATH"
みたいな呪文を書いたでしょうから、これをコメントアウトします。
そうしたら、まずはOpenCVの情報を見てみましょう。
opencv: stable 2.4.9, HEAD
http://opencv.org/
Not installed
/usr/local/Cellar/opencv/2.4.9 (219 files, 38M) *
Built from source with: --with-qt, --with-tbb
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/opencv.rb
==> Dependencies
Build: cmake ✔, pkg-config ✔
Required: jasper ✔, jpeg ✔, libpng ✔, libtiff ✔
Recommended: eigen ✔, openexr ✔
Optional: openni ✔, qt ✔, tbb ✔, ffmpeg ✔
==> Options
- 32-bit
Build 32-bit only
- c++11
Build using C++11 mode
- with-cuda
Build with CUDA support
- with-ffmpeg
Build with ffmpeg support
- with-java
Build with Java support
- with-openni
Build with openni support
- with-qt
Build the Qt4 backend to HighGUI
- with-tbb
Enable parallel code in OpenCV using Intel TBB
- with-tests
Build with accuracy & performance tests
- without-eigen
Build without eigen support
- without-opencl
Disable GPU code in OpenCV using OpenCL
- without-openexr
Build without openexr support
- HEAD
install HEAD version
DependenciesのOptionalは後々あると便利かもしれないので、とりあえず全部入れました。
で、brewでOpenCVをインストールするんですが、先にPYTHONPATHを編集しましょう。
情報によっては、インストール後に編集するのもあるんですが、後に編集するとモジュールのimport時にSegmentation Faultで落ちます。
export PYTHONPATH="/usr/local/lib/python2.7/site-packages:$PYTHONPATH"
これを.bash_profileに書いてsource。
できたらOpenCVのインストールです。
brew install opencv --with-eigen --with-jasper --with-libtiff --with-qt --with-tbb --env=std
withオプションでOptionalな依存パッケージを入れられます。
インストールには結構時間がかかるので、コーヒーでも飲んで待ちましょう。
終わったらサンプルプログラムを通してみます。
import cv2 cap = cv2.VideoCapture(0) ret, im = cap.read() cv2.imwrite('cap.jpg', im)
pyenvにも対応できる方法はもうちょっと模索してみよう。