0
votes

I am using open cv version 2.2.0 with visual studio 2008, i was doing some image processing tried many things but i got stucked doing SURF matching.... given some errors here..

Error 2 error LNK2019: unresolved external symbol "public: __thiscall cv::SurfFeatureDetector::SurfFeatureDetector(double,int,int)" (??0SurfFeatureDetector@cv@@QAE@NHH@Z) referenced in function _main test1.obj cvtest2008

Error 3 error LNK2019: unresolved external symbol "public: virtual __thiscall cv::FeatureDetector::~FeatureDetector(void)" (??1FeatureDetector@cv@@UAE@XZ) referenced in function "public: virtual __thiscall cv::SurfFeatureDetector::~SurfFeatureDetector(void)" (??1SurfFeatureDetector@cv@@UAE@XZ) test1.obj cvtest2008

Error 4 fatal error LNK1120: 2 unresolved externals C:\Documents and Settings\User.MYPC\Desktop\cvtest2008\Debug\cvtest2008.exe cvtest2008

here is my simple code...

#include <iostream>
#include <vector>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/features2d/features2d.hpp>


int main() {

    // Read input images
    cv::Mat image1= cv::imread("i1.jpg",0);
    cv::Mat image2= cv::imread("i2.jpg",0);
    if (!image1.data || !image2.data)
        return 0; 

    // Display the images
    cv::namedWindow("Right Image");
    cv::imshow("Right Image",image1);
    cv::namedWindow("Left Image");
    cv::imshow("Left Image",image2);

    // vector of keypoints
    std::vector<cv::KeyPoint> keypoints1;
    std::vector<cv::KeyPoint> keypoints2;

    // Construction of the SURF feature detector 
    cv::SurfFeatureDetector surf(3000);


    cv::waitKey();

    return 0;
}

please help

1

1 Answers

0
votes

I'm no c++ programmer, but it looks like your linker doesn't know where your opencv libraries are. For 2.2, I believe they are here:

...\OpenCV2.2\lib

In this SO question of mine, a lot of it doesn't apply, but the linking and libraries section is probably what you need. Ignore my original question of course and skip to either of the answers.