错误cv::SURF::SURF(double,int,int,bool,bool)在OpenCV和c++中实现SURF



可能没有实现OpenCV SURF函数的副本

我的错误码是:

错误LNK2019:未解析的外部符号"public: __thiscall cv::SURF::SURF(double,int,int,bool,bool)"(??0SURF@cv@@QAE@NHH_N0@Z)引用函数_main

我不知道如何修理它。

My Code is:

#include <opencvcv.h>
#include <opencvhighgui.h>
#include <iostream>
#include <conio.h>
#include <opencv2nonfreefeatures2d.hpp>
#include <opencv2legacylegacy.hpp>
#include <opencv2corecore.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main()
{
    Mat img_1 = imread("kmu1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    Mat img_2 = imread("all.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    if(!img_1.data || !img_2.data)
    {
        cout << "could not open or find the image" << endl;
        return -1;
    }
    int minHessian = 400;
    SURF surf( minHessian );
    vector <KeyPoint> keyPoints_1, keyPoints_2;
    Mat descriptors_1, descriptors_2;
    surf(img_1, Mat(), keyPoints_1, descriptors_1, false);
    surf(img_2, Mat(), keyPoints_2, descriptors_2, false);
    BFMatcher matcher(NORM_L2, false);
    vector<DMatch> matches;
    matcher.match(descriptors_1, descriptors_2, matches);
    Mat img_matches;
    drawMatches(img_1, keyPoints_1, img_2, keyPoints_2, matches, img_matches);
    imshow("Matches", img_matches);
    waitKey(0);
    _getch();
    return 0;
} 

如果您处于调试模式并使用OpenCV 2.4.5,请尝试添加这些库:

opencv_nonfree245d.lib 
opencv_features2d245d.lib

Project -> Properties -> linker -> Input -> Additional Dependencies.

我在做Feature Description tutorial时也有同样的错误,它修复了它。

最新更新