OpenCV 2.4.6 を使用して Macbook Pro の iSight からフレームをキャプチャしようとしており、Xcode で Apple LLVM 4.2 コンパイラを使用してビルドしています。
ただし、フレームを受信しません。通常、フレームがいっぱいになるまで while ループを実行するように設定しますが、以下のループは約 30 秒間実行され、結果はありません。どうすればこれをデバッグできますか?
void testColourCapture() {
cv::VideoCapture capture = cv::VideoCapture(0); //open default camera
if(!capture.isOpened()) {
fprintf( stderr, "ERROR: ColourInput capture is NULL \n" );
}
cv::Mat capFrame;
int frameWaits = 0;
while (capFrame.empty()) {
capture.read(capFrame);
//capture >> capFrame;
cvWaitKey(30);
frameWaits++;
std::cout << "capture >> capFrame " << frameWaits << "\n";
if (frameWaits > 1000) {
break;
}
}
imshow("capFrame", capFrame);
}
マルチスレッドではないことを確認しました。また、capture.isOpened は常に true を返します。
編集:他の人がこの問題を抱えているようです: OpenCVはMacBook Pro iSightからキャプチャしません
編集:opencvをインストールするための私の手順は次のとおりです:
$ sudo ポートの自己更新
$ sudo ポート インストール opencv
次に、libopencv_core.dylib、libopencv_highgui.dylib、libopencv_imgproc.dylib、libopencv_video.dylib を /opt/local/lib から Xcode プロジェクトの Frameworks フォルダーにドラッグしました。