Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通用描述符匹配器函数OPENCV_Opencv - Fatal编程技术网

通用描述符匹配器函数OPENCV

通用描述符匹配器函数OPENCV,opencv,Opencv,我想问你一个简单的问题,但到目前为止我很难回答。 我的问题是: opencv svn中有一个名为GenericDescriptorMatcher()的函数 Ptr-gdm=新的矢量描述符格式器(描述符格式器,描述符格式器); 我想得到一个关于它的解释,但简单地说,它应该是什么 描述符 它应该是什么 描述符 看在上帝的份上,很多天我都在研究这个函数,但仍然不知道如何使用它,所以如果你有使用它的经验,请尝试用非常简单的方式解释它 谢谢你这里有一个例子 // Detect features Ptr&

我想问你一个简单的问题,但到目前为止我很难回答。 我的问题是:

opencv svn中有一个名为GenericDescriptorMatcher()的函数

Ptr-gdm=新的矢量描述符格式器(描述符格式器,描述符格式器);
我想得到一个关于它的解释,但简单地说,它应该是什么

描述符

它应该是什么

描述符

看在上帝的份上,很多天我都在研究这个函数,但仍然不知道如何使用它,所以如果你有使用它的经验,请尝试用非常简单的方式解释它

谢谢你这里有一个例子

// Detect features
Ptr<FeatureDetector>     detector = new SurfFeatureDetector(400);
vector<KeyPoint> features;
detector->detect(image,   features); 

// Extract features
Mat descriptors;
Ptr<DescriptorExtractor> extractor = new SurfDescriptorExtractor();
extractor->compute(image,     features, descriptors);

// Matcher of features
Ptr<DescriptorMatcher> matcher = new BruteForceMatcher<L2<float>>();

// Now you can match the features using matcher or use gdm
Ptr<GenericDescriptorMatcher> gdm = new VectorDescriptorMatcher( extractor, matcher);
//检测功能
Ptr探测器=新的表面特征探测器(400);
矢量特征;
检测器->检测(图像、特征);
//提取特征
Mat描述符;
Ptr提取器=新的SurfDescriptorExtractor();
提取器->计算(图像、特征、描述符);
//特征匹配器
Ptr matcher=新的BruteForceMatcher();
//现在,您可以使用matcher或使用gdm来匹配这些特性
Ptr gdm=新矢量描述符(提取器、匹配器);

当然,为了执行图像匹配,您没有义务使用通用描述符类。如果你需要图像匹配方面的帮助,我可以提供一个例子谢谢你,丹尼,但这对我来说根本不起作用。我试过了,但没用。。。我需要这个gdm值来计算描述符。。另一个问题Dani,通过使用这个函数双匹配(const vector&/*kpts\u train*/,const vector&/*kpts\u query*/,DescriptorMatcher&matcher,const Mat&train,const Mat&query,vector&matcher),我想画出匹配,所以我需要匹配,我使用了这个函数,但在使用它时出现了错误,你知道double pop_time=match(keypoints1,keypoints2,matcher,descriptors1,descriptors2,matches)吗;Hei Mario,在这里查看我的答案:,我提供了完整的图像匹配示例代码,还提供了debugHi Dani的显示匹配,我可以问你为什么使用Bruteforce L2,而不是例如Haming,它更快,或者只是你曾经使用过它?谢谢
// Detect features
Ptr<FeatureDetector>     detector = new SurfFeatureDetector(400);
vector<KeyPoint> features;
detector->detect(image,   features); 

// Extract features
Mat descriptors;
Ptr<DescriptorExtractor> extractor = new SurfDescriptorExtractor();
extractor->compute(image,     features, descriptors);

// Matcher of features
Ptr<DescriptorMatcher> matcher = new BruteForceMatcher<L2<float>>();

// Now you can match the features using matcher or use gdm
Ptr<GenericDescriptorMatcher> gdm = new VectorDescriptorMatcher( extractor, matcher);