【问题标题】:Error cv::SURF::SURF(double,int,int,bool,bool) in Implementation SURF with OpenCV and C++使用 OpenCV 和 C++ 实现 SURF 时出现错误 cv::SURF::SURF(double,int,int,bool,bool)
【发布时间】:2013-05-06 07:33:50
【问题描述】:

OpenCV SURF function is not implemented 可能重复

我的错误代码是:

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

我不知道如何解决它。

我的代码是:

#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <iostream>
#include <conio.h>
#include <opencv2\nonfree\features2d.hpp>
#include <opencv2\legacy\legacy.hpp>
#include <opencv2\core\core.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;
} 

【问题讨论】:

标签: c++ opencv surf


【解决方案1】:

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

opencv_nonfree245d.lib 
opencv_features2d245d.lib

在项目中 -> 属性 -> 链接器 -> 输入 -> 附加依赖项。

我在做功能描述教程时遇到了同样的错误,它已修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2021-11-25
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多