Ошибка cv :: SURF :: SURF (double, int, int, bool, bool) в реализации SURF с OpenCV и переполнением стека

Возможный дубликат Функция OpenCV SURF не реализована

Мой код ошибки:

ошибка LNK2019: неразрешенный внешний символ «public: __thiscall cv :: SURF :: SURF (double, int, int, bool, bool)» (?? 0SURF @ cv @@ QAE @ NHH_N0 @ Z), на который есть ссылка в функции _main

Я не знаю, как это исправить.

Мой код:

#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;
}

2

Решение

Попробуйте добавить эти библиотеки, если вы находитесь в режиме отладки и используете OpenCV 2.4.5:

opencv_nonfree245d.lib
opencv_features2d245d.lib

В проекте -> Свойства -> компоновщик -> Ввод -> Дополнительные зависимости.

У меня была та же ошибка в руководстве по описанию функций, и оно исправило ее.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]