我用Cmake构建了opencv,并尝试了一些诸如视频提要显示和加载图像之类的事情,效果很好。
然后我尝试使用特征检测算法(筛选,浏览等),但遇到了不同的错误。在对StackOverflow进行了一些研究之后,我发现了以下文档:https://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html#tutorial_transition_hints_headers
这里说声明算法的好方法如下:
cv::Ptr<cv::xfeatures2d::SIFT> sift2 = cv::xfeatures2d::SIFT::create(0, 4, 0.04, 10, 1.6);
但是这在编译期间给我一个错误。错误是:
unsolved external symbol "public: static_struct cv::Ptr..." referenced in main
我应该提到,在用Cmake构建OpenCV之后,我将xfeatures2d文件包含在include文件夹中。因此,我没有使用contrib文件构建库。这是错误的原因还是我错过了什么?因为我可以打开文件,并且看到xfeatures2d确实具有成员SIFT,并且我认为它具有create()函数,因为可视辅助功能列出了所有参数类型。