sift,surf等算法在OpenCV2.4.6中不是免费的,放在nonfree里面了,解决问题的方法是添加#include"opencv2/nonfree/features2d.hpp"头文件,并在附加依赖项中添加相应的动态库
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LclXS61EeFpWTqBnMZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMzUDN0IDMxEDNxUDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
无法解析的外部符号"public:__thiscall cv::SURF::SURF(void)" (??0SURF@cv@@QAE@XZ),该符号在函数main 中被引用
无法解析的外部符号"public:__thiscall cv::SURF::SURF(double,int,int,bool,bool)"(??0SURF@cv@@QAE@NHH_N0@Z),该符号在函数main 中被引用
解决方法:用VS2010的话就在通用属性->连接器->输入->附加依赖项里边添加上库文件opencv_nonfree249d.lib这里最后的249具体可能根据你的版本变化,为你当前opencv版本,d字母表示debug,也可去掉,表示Release。