首先有一个比较合理的解释:
因为含有surf特征提取算法再opencv2.0版本是放在nonfree头文件中的,换成3.0版本之后,对nonfree模块测试的还不够,所以暂时还没有直接给出像之前2.0版本那样方便的nonfree库,而是放在了xfeatures2d头文件和xfeatures2d库中。而xfeatures2d比nonfree多了实验性二维特征算法,而想在3.0版本使用surf的话,暂时需要自己对OpenCV进行编译。
就是在编译之前,需要下载 opencv_contrib,然后再编译时将其modules文件夹路径添加到cmake的opencv_extra_modules_path通过编译得到xfeatures2d的库文件就行了,同时使用的语法也变了,创建检测器要用Ptr detector = SURF::create( );
而不再是SurfFeatureDetector detector( );
而怎么编译,可以参考这个链接:
https://blog.csdn.net/Owen_Suen/article/details/104444352
现在目前是编译完了,需要在环境变量上面进行设置。
在网上参考了一个方法就是,不改环境变量,直接把新的复制过来,然后按照原名变成旧的。
但是在改lib文件的时候,只有这两个,而不是那种一大串的。。