Я только что установил OpenCV 2.2 и Visual C ++ 2010 и настроил его.Я не получаю ошибки компиляции, но при запуске этого кода я получаю эту ошибку
Unhandled exception at 0x6c2f22f2 (msvcr100.dll) in Es_CornerDetector.exe: 0xC0000005: access violation reading location 0x002a1000.
Код:
#include "opencv/highgui.h"
#include "opencv2/features2d/features2d.hpp"
int main(int argc, char** argv)
{
cv::SurfFeatureDetector detector;
detector.create("SURF");
}
Я действительно не понимаю, в чем может быть причина ..
Обновление:
Возможно, использование «dete.create ()» неверно, поэтому я попробовал что-то другое, но я получаю другую ошибку (всегда, когда пытаюсь получить доступ к «детектору»):
First-chance exception at 0x67608ef4 in Es_CornerDetector.exe: 0xC0000005: Access violation writing location 0x02655008.
Unhandled exception at 0x67608ef4 in Es_CornerDetector.exe: 0xC0000005: Access violation writing location 0x02655008.
Альтернативный код:
#include "opencv\cv.h"
#include "opencv\highgui.h"
#include "opencv2\features2d\features2d.hpp"
#include <vector>
#include <iostream>
int main()
{
IplImage* img_temp = cvLoadImage("img.jpg");
cv::Mat img(img_temp);
if(img.empty()==1)
{
std::cout << "Can't load the image.." << endl;
getchar();
return -1;
}
cv::SurfFeatureDetector detector;
vector<cv::KeyPoint> keypoints;
detector.detect(img,keypoints);
return 0;
}
Обновление 2
Я получаю одинаковую ошибку в 2 разных системах как с VS2010, так и с VS2008, а также при попытке запустить пример кодаdescriptor_extractor_matcher.cpp, который можно найти в .. \ OpenCV2.2 \ samples \ cpp \ descriptor_extractor_matcher.cpp
Попытка OpenCV 2.3.1 (как двоичные, так и скомпилированные):
Вау, новая экзотикаошибка:
Run-Time Check Failure #2 - Stack around the variable 'keypoints' was corrupted.
Я собираюсь сдаться ...