MacPortsでOpenCV+python環境の構築 2010/10/18

これまでOpenCVPythonバインディングやその他のオプションを使うならCmakeでビルドする必要があったのだが、今確認するとPortsOpenCVの依存にCMAKEが加わってCMAKEでビルドするようになった。Python使うのならvariantsとして +python26 のオプションをつける。

$ sudo port install opencv +python26

サンプルプログラムは /opt/local/share/opencv/samples に、検出機のサンプルは /opt/local/share/opencv/haarcascades/にある。
自分でCMAKE触らない分、シンプルに依存が管理できるのでこっちのほうが楽だと思われる。iSightにもアクセスできるし。

Pythonでカメラを使うサンプル

今までのSWIGPython Bindingとは違い、新しく描き直されたPythonBindingがある(すごくバグが多かったと聞くけど、自分はビルドさえ出来なかったので知らん
ドキュメントは OpenCV 2.1 Python Reference ― opencv v2.1 documentation
関数にcvのヘッダを付ける必要がなくなったようだ。( 昔のサンプルを読むときは opencv.cvNamedWindow -> cv.NamedWindow みたいに読む)

#camaera.py
import cv
import time

cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)

while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera", img)
    print time.time()
    
    if cv.WaitKey(10) == 27:
        break

捕捉: MacPortsPythonを使う場合

今までSnowLeopardデフォルトのPythonを使っていたのだけど、Ports版のPythonを使うなら、ちょっと変なところにパスを通さないといけない。
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/

これでeasy_install や pip で入れた ipython がちゃんと動いたりします。