के लिए मास्क पैरामीटर का उपयोग कैसे करें मैं क्षेत्रों के एक सेट (मास्क) में एक सर्फफेचर डिटेक्टर को सीमित करना चाहता हूं। एक परीक्षण के लिए मैं केवल एक ही मुखौटा परिभाषित:ओपनसीवी: फीचर पॉइंट डिटेक्शन (एसयूआरएफ)
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
जब मैं "रॉय" पारित मुखौटा के रूप में मैं इस त्रुटि मिलती है:
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 की "पहचान" विधि में एक मुखौटा कैसे सही ढंग से पास कर सकता हूं?
सम्मान,
धन्यवाद, यह काम कर रहा है। – Hyndrix
मुझे लगता है कि यह 'स्केलर (255) होना चाहिए;' मास्क 1-आयामी है। –
'roi' में 3 चैनल हैं, जैसे' srcImage' ('roi'' srcImage' का सबमेट्रिक्स है) – Alexey