OpenCV: howto Verwendung der Maske parameter für feature point detection (SURF -)

Ich will limit a SurfFeatureDetector auf eine Reihe von Regionen (Maske). Für einen test definiere ich nur eine einzige Maske:

Mat srcImage; //RGB source image
Mat mask = Mat::zeros(srcImage.size(), srcImage.type());
Mat roi(mask, cv::Rect(10,10,100,100));
roi = Scalar(255, 255, 255);
SurfFeatureDetector detector();
std::vector<KeyPoint> keypoints;
detector.detect(srcImage, keypoints, roi); //crash
//detector.detect(srcImage, keypoints); //does not crash

Wenn ich den pass der "roi" als die Maske, die ich bekomme diese Fehlermeldung:

OpenCV Error: Assertion failed (mask.empty() || (mask.type() == CV_8UC1 && mask.size() == image.size())) in detect, file /Users/ux/Downloads/OpenCV-iOS/OpenCV-iOS/../opencv-svn/modules/features2d/src/detectors.cpp, line 63

Was ist Los mit diesem? Wie kann ich mich richtig übergeben Sie eine Maske, um die SurfFeatureDetector "erkennen" - Methode?

Grüße,

InformationsquelleAutor Hyndrix | 2013-05-03

Schreibe einen Kommentar