OpenCV C++ de Capture Vidéo ne semble pas fonctionner

J'utilise un Mac OS X 10.6 machine. J'ai OpenCV 2.1 x64 compilé à partir des sources à l'aide de Xcode et sa compilateur GCC.

J'ai de la difficulté avec le C++ vidéo fonctions de lecture de OpenCV. Voici le simple code de test, je suis en utilisant (venue tout droit d'OpenCV documentation):

#include "cv.h"
#include "highgui.h"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); //open the default camera
    if(!cap.isOpened())  //check if we succeeded
        return -1;

    Mat edges;
    namedWindow("edges",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; //get a new frame from camera
        cvtColor(frame, edges, CV_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges);
        if(waitKey(200) >= 0) break;
    }
    //the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}

Le programme compile bien, mais quand j'essaie de le lancer, je vois la lumière verte sur ma webcam venir pendant quelques secondes, puis le programme s'arrête avec le message d'erreur:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /Users/mark/Downloads/OpenCV-2.1.0/src/cxcore/cxarray.cpp, line 2476
terminate called after throwing an instance of 'cv::Exception'
  what():  /Users/mark/Downloads/OpenCV-2.1.0/src/cxcore/cxarray.cpp:2476: error: (-206) Unrecognized or unsupported array type in function cvGetMat

Sous le mode de débogage, la matrice semble toujours être vide après le cap >> la ligne du cadre.

- Je obtenir un comportement similaire lorsque j'essaie de capturer à partir d'un fichier vidéo ou une image, il n'est donc pas la caméra. Ce qui est mal, pensez-vous? Tout ce que je peux faire pour faire ce travail?

EDIT: je tiens à ajouter que si j'utilise le C dispose d', tout fonctionne bien. Mais je tiens à le bâton avec C++ si je peux.

Grâce

OriginalL'auteur amatsukawa | 2010-10-15