未实现 OpenCV SURF 功能

当我尝试运行示例 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 再次构建 OpenCV 2.4,然后在调试模式下使用 VS2011,然后在 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:\SURF\1.jpg"); 
    IplImage *image2 = cvLoadImage("C:\SURF\2.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;
}
bmliuxuan142524 回答:未实现 OpenCV SURF 功能

摘自 这个答案(为什么不在提问前先用谷歌搜索一下?):

SIFT 和 SURF 代码在 OpenCV v2.4 中被移动到一个名为的新模块中非自由.确保您正在链接(Windlows 中的 DLL)到它.在 linux 中,这个库被称为 libopencv_nonfree.so.

这篇关于未实现 OpenCV SURF 功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!

本文链接:https://www.f2er.com/3187856.html

大家都在问