Debug Assertion Failed Expression: _pFirstBlock == pHead mit OpenCV und C++ zu versuchen, rufen Sie SurfFeatureDetector

Habe ich diese Funktion in C++ mit OpenCV:

vector<KeyPoint> test(Mat img)
{
  int minHessian = 400;
  SurfFeatureDetector detector( minHessian );

  vector<KeyPoint> vKeypoints;
  detector.detect( img, vKeypoints );

  return vKeypoints;
}

Wenn ich rufen Sie diese Funktion in meiner main-Methode, funktioniert alles einwandfrei.

int main( int, char** argv )
{
    //path to a image-file
    char* input = "image.jpg";

    //read image into Mat img
    Mat img = imread( input, CV_LOAD_IMAGE_GRAYSCALE );

    //call function test
    test(img);

    waitKey(0);
    return 0;
}

Aber sobald ich rufe diese Methode zweimal...

int main( int, char** argv )
{
    //path to a image-file
    char* input = "image.jpg";

    //read image into Mat img
    Mat img = imread( input, CV_LOAD_IMAGE_GRAYSCALE );

    //call function test
    test(img);
    test(img); //<-- !!! second call

    waitKey(0);
    return 0;
}

...Bekomme ich die folgende Fehlermeldung:

Debug Assertion Failed Expression: _pFirstBlock == pHead mit OpenCV und C++ zu versuchen, rufen Sie SurfFeatureDetector

Kann mir jemand sagen wo mein Fehler ist und wie ich dieses Problem beheben könnte? Ich brauche Sie zum aufrufen dieser Funktion zweimal mit zwei verschiedenen Bildern, aber jedes mal, wenn ich das mache bekomme ich diesen Fehler.

Ich bin mit Visual Studio 2012.

InformationsquelleAutor Mickey | 2014-01-21
Schreibe einen Kommentar