Macでopencv
Macでopencvを使えるようにするまでのいろいろを備忘録代わりに。
正しいかどうかはあんまり自信ないので。
環境:
MacOS 10.7 (Lion)
Macports (2.1.2)
python (2.7.3), Numpy (1.6.2) < Macportsでinstall
Macportsでopencvをinstall。pythonからopencvを使うためにはNumpyがinstallされてる必要がある。今回はすでに入っているのでパス。ターミナルから
>sudo port -d install opencv +python27
python2.7で使うためには+python27のoptionが必要。ちなみにこれでinstallされたopencvはMacportsでinstallしたpythonでは使えるけどこのままではOS付属のpythonにはimportできないぽい。
今回installされたのはopencv2.4.2(現時点で最新のは2.4.3)。
当初、Xcode4.5を使ってテストしてたんだけど、なぜかサンプルコードのビルドに失敗してしまった。結局、Xcode4.2をDeveloper siteから落としてきて入れ直したらビルドできたんだけど原因は不明。
New project > Command Line Tool > 適当に名前を付けてTypeをC++に
Build settingのvalid architecturesからi386を消してx86_64のみに。header search pathに/opt/local/includeを入力。
次にBuild phasesのLink binary with libraryの追加ボタンを押してAdd otherからlibopencvを検索してlibopencv_core2.4.2.dylib, libopencv_highgui.dylib, libopencv_imgproc.dylibを追加。
そしてmain.cppに
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
VideoCapture capture(0);
Mat frame;
while (waitKey(1) != 'q') {
capture >> frame;
imshow("test", frame);
}
return 0;
}
これでビルドするとiSightのカメラが起動する。qで停止。
次、python。エディタでtest.pyに以下のように記述。
import cv2
cap = cv2.VideoCapture(0)
while cv2.waitKey(1) != 'q':
success, img = cap.read()
cv2.imshow("test", img)
これをターミナル上で
>python2.7 test.py
(Macportsのpythonを使えるように事前に/opt/local/binにパスを通しておくこと。)
これでiSightのカメラ起動したけど、qで停止しない。原因はまだ不明。