OpenCV:未在此范围内声明'SiftDescriptorExtractor'

时间:2015-02-01 16:52:21

标签: c++ opencv computer-vision sift

我是OpenCV的新手,过去几天一直在尝试一些例子。我成功地让哈里斯角落检测到了一些测试图像。我的下一个测试是看看我是否可以根据使用SIFT的哈里斯检测来匹配两个图像。

以下是我找到哈里斯角落的方法:

GoodFeaturesToTrackDetector harris_detector(1000, 0.01, 10, 3, true);
vector<KeyPoint> keypoints1, keypoints2; 

harris_detector.detect(img1, keypoints1);
harris_detector.detect(img2, keypoints2);

这很有效。我的下一个目标是匹配img1和img2之间的功能,我尝试使用SIFT。但是,当我尝试为SIFT声明一个提取器时:

SiftDescriptorExtractor extractor;

我收到以下错误:

错误:未在此范围内声明'SiftDescriptorExtractor'  SiftDescriptorExtractor提取器;

我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

确保您拥有#include <features2d.hpp>。 在某些版本的OpenCV中,Sift位于<opencv2/nonfree/features2d.hpp>