OpenCV 如何创建 DescriptorExtractor 对象
OpenCV how to create a DescriptorExtractor object
我正在使用 OpenCV C++ 库,但我无法创建 DescriptorExtractor
对象。
这是我所做的:
Mat img = imread("testOrb.jpg",CV_LOAD_IMAGE_UNCHANGED);
std::vector<KeyPoint> kp;
cv::Ptr<cv::ORB> detector = cv::ORB::create();
detector->detect( img, kp )
//this part works
DescriptorExtractor descriptorExtractor;
Mat descriptors;
descriptorExtractor.compute(img, kp, descriptors);
//when these 3 lines are added, an error is thrown
但是我有以下错误信息:
OpenCV Error: The function/feature is not implemented () in detectAndCompute, file ...
DescriptorExtractor
是一个抽象 class,所以你不能实例化它。它只是描述符提取器的通用接口。你可以这样做:
Ptr<DescriptorExtractor> descriptorExtractor = ORB::create();
Mat descriptors;
descriptorExtractor->compute(img, kp, descriptors);
注意也存在FeatureDetector
,这是检测关键点的通用接口,所以你可以这样做:
std::vector<KeyPoint> kp;
Ptr<FeatureDetector> detector = ORB::create();
detector->detect(img, kp);
我正在使用 OpenCV C++ 库,但我无法创建 DescriptorExtractor
对象。
这是我所做的:
Mat img = imread("testOrb.jpg",CV_LOAD_IMAGE_UNCHANGED);
std::vector<KeyPoint> kp;
cv::Ptr<cv::ORB> detector = cv::ORB::create();
detector->detect( img, kp )
//this part works
DescriptorExtractor descriptorExtractor;
Mat descriptors;
descriptorExtractor.compute(img, kp, descriptors);
//when these 3 lines are added, an error is thrown
但是我有以下错误信息:
OpenCV Error: The function/feature is not implemented () in detectAndCompute, file ...
DescriptorExtractor
是一个抽象 class,所以你不能实例化它。它只是描述符提取器的通用接口。你可以这样做:
Ptr<DescriptorExtractor> descriptorExtractor = ORB::create();
Mat descriptors;
descriptorExtractor->compute(img, kp, descriptors);
注意也存在FeatureDetector
,这是检测关键点的通用接口,所以你可以这样做:
std::vector<KeyPoint> kp;
Ptr<FeatureDetector> detector = ORB::create();
detector->detect(img, kp);