此代码是关于surf algorithm
的示例。
但是当我执行此代码时,我有一条错误消息。
错误:错误LNK2019:" public:static struct cv :: Ptr __cdecl CV :: xfeatures2d :: SURF ::创建(双,INT,INT,布尔,布尔)" (?创建@ SURF @ xfeatures2d @ @@ CV SA?AU?$ PTR @ VSURF @ xfeatures2d @ CV @@@ 3 @ NHH_N0 @ Z)
为什么我有这个错误?我必须使用冲浪算法。 关于这个错误的解决方案是什么?
#include <stdio.h>
#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/xfeatures2d.hpp"
#include "opencv2/highgui.hpp"
using namespace cv;
using namespace cv::xfeatures2d;
void readme();
int main()
{
Mat img_1 = imread( "a.jpg", IMREAD_GRAYSCALE );
Mat img_2 = imread( "b.jpg", IMREAD_GRAYSCALE );
if( !img_1.data || !img_2.data )
{ std::cout<< " --(!) Error reading images " << std::endl; return -1; }
//-- Step 1: Detect the keypoints using SURF Detector
int minHessian = 400;
Ptr<SURF> detector = SURF::create( minHessian );
std::vector<KeyPoint> keypoints_1, keypoints_2;
detector->detect( img_1, keypoints_1 );
detector->detect( img_2, keypoints_2 );
//-- Draw keypoints
Mat img_keypoints_1; Mat img_keypoints_2;
drawKeypoints( img_1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT );
drawKeypoints( img_2, keypoints_2, img_keypoints_2, Scalar::all(-1), DrawMatchesFlags::DEFAULT );
//-- Show detected (drawn) keypoints
imshow("Keypoints 1", img_keypoints_1 );
imshow("Keypoints 2", img_keypoints_2 );
waitKey(0);
return 0;
}
/** @function readme */
void readme()
{ std::cout << " Usage: ./SURF_detector <img1> <img2>" << std::endl; }