我希望您能帮助我限制SurfFeatureDetector的区域(掩码)。为了进行测试,我只定义了一个掩码:
当我使用“roi”作为掩码时,出现了以下错误:
这有什么问题吗?我应该如何正确地将掩模传递给SurfFeatureDetector的“detect”方法?
谢谢,
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
当我使用“roi”作为掩码时,出现了以下错误:
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
这有什么问题吗?我应该如何正确地将掩模传递给SurfFeatureDetector的“detect”方法?
谢谢,
Scalar(255);
,因为掩码是一维的。 - Martin R.