PythonでOpenCVを使う
散々ハマったのでやり方を簡単にまとめておきます。
...でも簡単です。
環境
Mac 10.9.4
Python 2.7.8
OpenCV 2.4.9
手順
あらかじめnumpyをインストール済みであればOpenCVインストール時にOpenCVのディレクトリ(brewでインストールしたなら/usr/local/Cellar/opencv/バージョン/)にcv.pyとcv2.pyというPythonのライブラリが入っています。
やることはひとつ。使用しているPythonのsite-packagesディレクトリ以下にこれらのシンボリックリンクを張ってやるだけです。
以下、OpenCVのインストールから。
brew tap homebrew/science
次に、numpyが入っているかどうか確認して下さい。virtualenvで仮想環境を利用している場合も同様。numpyがインストール済みであることを確認して、
brew install opencv
次に、今利用しているPythonのsite-packagesディレクトリに移動して、以下のコマンドでシンボリックリンクをはってください。つまり、virtualenvを使っていないのであれば、例えば
cd /Library/Python/2.7/site-packages/
virtualenvを使っているのであれば、例えば
cd ~/.virtualenv/環境名/lib/python2.7/site-packages
あとは以下のコマンドをでシンボリックリンクをはってやるだけ!
ln -s /usr/local/Cellar/opencv/2.4.9/lib/python2.7/site-packages/cv.py cv.py
ln -s /usr/local/Cellar/opencv/2.4.9/lib/python2.7/site-packages/cv2.so cv2.so
以下のようにインポートしてエラーが出なければ成功です!
➜ ~ python
Python 2.7.8 (default, Oct 16 2014, 05:18:45)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>> import cv2
segmentation faultが出た場合、シンボリックリンクがはれていません。cv.pyとcv2.pyをsite-packages以下にコピーするだけだとこうなります。コピーしただけでは肝心のOpenCV本体とつながらないんだと思います。ご注意を。
そもそもcvなんていうライブラリはないよというエラーが出た場合、OpenCVをインストールした時にPythonのパッケージが同時にインストールされていない可能性が高いので、一度OpenCVをアンインストールし、numpyがインストールされていることを確認した上でもう一度チャレンジしてみてください。
参考
正直に言うと、virtualenvのくだり以外はそのままです。OpenCVをPythonでつかう!っていう記事は沢山ありますが、以下のリンクが一番簡潔で良かったです。
Installing OpenCV 2.4.9 on Mac OSX with Python Support