Visual Studio 2010 の単純なプログラムで使用すると、機能検出器が失敗します。私は opencv 2.4.2 を使用しており、2.4.1 もチェックしています。行われている唯一のことは、特徴検出器を作成し、それを使用して画像内のキーポイントを検出することです。detectors.cpp 内の「detecImpl()」という名前の関数 (つまり、features2d\detectors.cpp 行:65) を指している未処理の例外クラッシュが発生します。このエラーは本当にスタックしており、膨大な時間がかかっているため、助けていただければ幸いです。
#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;
}
}