Ask Your Question
2

feature detector crash

asked Jul 16 '12

frondeur gravatar image

updated Jul 16 '12

Hi,

feature detector fails when used in simple program in visual studio 2010. I am using opencv 2.4.2 and also checked on 2.4.1. Only thing that is being done is to create a feature detector and use that to detect keypoints in an image. I get unhandled exception crash pointing to a function named "detecImpl()" inside detectors.cpp (i.e. features2d\detectors.cpp line:65). This error is really stuck and has taken enormous amount of time so any help is really appreciated.

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

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
cv::Ptr<cv::FeatureDetector> featureDetector;
    cv::Ptr<cv::DescriptorExtractor> descriptorExtractor;
    featureDetector = cv::FeatureDetector::create("SURF");
    descriptorExtractor = cv::DescriptorExtractor::create("SURF");
cv::Mat imageColor;
cv::Mat image = cv::imread("car1.jpg", 0);
    cv::cvtColor(image, imageColor, CV_GRAY2BGR);
    try{
        imshow("Test Image",imageColor);
        cv::waitKey(3000);
    }
    catch(cv::Exception exc)
    {
        cout << "CV error occured : " + exc.msg;
    }
std::vector<cv::KeyPoint> currentKeypoints;

try{
            featureDetector->detect(image,currentKeypoints);   //This line generates the error but no exception is caught ....
    }
    catch(cv::Exception exc)
    {
        cout << "CV error occured : " + exc.msg;
        return -1;
    }
}
Preview: (hide)

Comments

Thanks, actually i didn't know when they moved it into separate lib. So when i figured it out the problem was solved.

frondeur gravatar imagefrondeur (Jul 24 '12)edit

2 answers

Sort by » oldest newest most voted
3

answered Jul 16 '12

Maria Dimashova gravatar image

updated Jul 16 '12

Hi! In 2.4 beta SURF and SIFT were moved to nonfree module to indicate possible legal issues of using those algorithms in user applications. So "opencv2/nonfree/nonfree.hpp" has to be included now. They were also inherited from cv::Algorithm, so cv::initModule_nonfree() has to be called before using them to avoid the problem with SURF, SIFT algorithms registration. See how it's done eg. in descriptor_extractor_matcher.cpp sample.

Preview: (hide)
-1

answered May 14 '13

Hi,

I have also added the include opencv2/nonfree/nonfree.hpp and cv::initModule_nonfree() but I still threw the same exception :(. So, please anyone help me. I have spent a lot of time on this bug.

Preview: (hide)

Comments

yours is not an answer, but a question. please don't pirate old threads, instead start your own question, else noone can find it and respond..

berak gravatar imageberak (May 14 '13)edit

Question Tools

Stats

Asked: Jul 16 '12

Seen: 5,139 times

Last updated: May 14 '13