我是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提取器;
我做错了什么?
提前致谢。
答案 0 :(得分:2)
确保您拥有#include <features2d.hpp>
。
在某些版本的OpenCV中,Sift位于<opencv2/nonfree/features2d.hpp>
。