c – OpenCV SURF功能未实现
发布时间:2020-12-16 05:42:23 所属栏目:百科 来源:网络整理
导读:当我尝试运行示例find_obj.cpp或任何OpenCV SURF程序时,我在执行代码时在命令提示符处得到以下错误.该项目建立没有错误和警告.我使用的是VS2011 beta,OpenCV 2.4和 windows7. 错误信息: OpenCV Error: The function/feature is not implemented OpenCV was
当我尝试运行示例find_obj.cpp或任何OpenCV SURF程序时,我在执行代码时在命令提示符处得到以下错误.该项目建立没有错误和警告.我使用的是VS2011 beta,OpenCV 2.4和
windows7.
错误信息: OpenCV Error: The function/feature is not implemented < OpenCV was built without SURF support> in unknown function,file ......srcopencvmoduleslegacysrcfeatures2d.cpp,line 77 我尝试使用Cmake然后VS2011在调试模式下再次构建OpenCV 2.4,然后在IDE中添加了lib路径,但仍然没有结果. 我该如何解决? #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/legacy/legacy.hpp> #include <opencv2/legacy/compat.hpp> #include <opencv2/flann/flann.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/nonfree/features2d.hpp> #include <opencv2/nonfree/nonfree.hpp> using namespace std; using namespace cv; int main() { cv::initModule_nonfree();//THIS LINE IS IMPORTANT IplImage *image1 = cvLoadImage("C:SURF1.jpg"); IplImage *image2 = cvLoadImage("C:SURF2.jpg"); CvMemStorage* memoryBlock = cvCreateMemStorage(); CvSeq* image1KeyPoints; CvSeq* image1Descriptors; CvSeq* image2KeyPoints; CvSeq* image2Descriptors; // Only values with a hessian greater than 500 are considered for keypoints CvSURFParams params = cvSURFParams(500,1); cvExtractSURF(image1,&image1KeyPoints,&image1Descriptors,memoryBlock,params); cvExtractSURF(image2,&image2KeyPoints,&image2Descriptors,params); return 0; } 解决方法
从
this answer开始(为什么不问你谷歌你的问题?):
SIFT和SURF代码在OpenCV v2.4中移动到一个新的模块非自由.确保您正在链接(Windlow中的DLL).在linux中,这个库被称为libopencv_nonfree.so. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |