Функция обнаружения сбоев в opencv(ORB и BRISK)

Я пытаюсь получить ключевые точки на изображении, используя детектор ORB, но всегда получаю исключение и сбой, мой код следующий.

vector < KeyPoint > kp;

int nfeatures = 500;
float scaleFactor = 1.2f;
int nlevels = 8;
int edgeThreshold = 15;
int firstLevel = 0;
int WTA_K = 2;
int scoreType = ORB::HARRIS_SCORE;
int patchSize = 31;
int fastThreshold = 20;

Ptr < ORB > detector = ORB::create(
    nfeatures,
    scaleFactor,
    nlevels,
    edgeThreshold,
    firstLevel,
    WTA_K,
    scoreType,
    patchSize,
    fastThreshold );

detector->detect(img, kp);
cout << "Found " << kp.size() << " Keypoints " << std::endl;

Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));

imshow("Kpts", out);

img объявляется рано, проблема в том, когда действительно -> Detect(img, kp); и я не знаю, в чём проблема, я пытаюсь сделать это в другой форме, но все вылетает при вызове Detect().

Я пытаюсь сделать с BRISK и проблема та же в вызове обнаружения сбоя. С быстротой я сделал следующее для упрощения:

Ptr < BRISK > detector = BRISK::create();
vector <KeyPoint> kp;
detector->detect(img,kp);

Это становится раздражающим.

Я использовал opencv 3 в visual studio 2015 с windows 10.

Извините за мой английский и спасибо за ответ.

1 ответ

Эта ошибка продолжается в версии CV2 4.2.0актуально на сегодня. Я аналогичным образом пытался инициализироватьcv2.ORB()получил ~00x5 error, пытался ORB_create() и в итоге это сработало!

Хорошо, я решаю свою проблему построения opencv для visual studio с помощью cmake и opencv_contrib. Я следую инструкциям следующих ссылок, если у кого-то есть такая же проблема:

http://audhootchavancv.blogspot.in/2015/08/how-to-install-opencv-30-and.html

Другие вопросы по тегам