我是OpenCV的新手,过去几天一直在尝试一些示例。我已经成功获得了Harris角点检测以用于一些测试图像。我的下一个测试是查看是否可以使用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提取器;
我究竟做错了什么?
提前致谢。
最佳答案
确保您有#include <features2d.hpp>
。
在某些版本的OpenCV中,Sift在<opencv2/nonfree/features2d.hpp>
中。
关于c++ - OpenCV:在此范围内未声明 ‘SiftDescriptorExtractor’,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28265182/