2016-07-14 2 views
-1

Сообщество пользователей сообщества Stackoverflow,SimpleBlobDetector не может быть запущен

У меня возникла проблема, и мне нужна ваша помощь. У меня есть пороговый коврик, и я пытаюсь обнаружить какой-либо blob на нем. Моя настройка:

cv::SimpleBlobDetector::Params params; 
    params.minDistBetweenBlobs = 10.0; // minimum 10 pixels between blobs 
    params.filterByArea = true;   // filter my blobs by area of blob 
    params.minArea = 1000;    // min 1000 pixels squared 
    params.maxArea = 10000;    // max 10000 pixels squared 
    params.filterByColor = true; 
    params.blobColor = 255; 
    Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params); 
    std::vector<cv::KeyPoint> myBlobs; 
    detector->detect(fgMaskMOG2, myBlobs); 
    drawKeypoints(fgMaskMOG2, myBlobs, fgMaskMOG2); 
    imshow("FG Mask MOG 2", fgMaskMOG2); 

Но программа остановилась после запуска, не показывая ключевую точку, выделенную на моем изображении. Это Mat fgMaskMOG2, двоичная рамка, созданные до тех строк кода: pic

Я использую OpenCV 3. Проблема была на линии извещателя> обнаружить (fgMaskMOG2, myBlobs); Я читал другие темы и не думаю, что проблема в коде, потому что другие люди сделали то же самое. Я попытался преобразовать фрейм в CV_GRAY2RGB и CV_8UC1, но это не устраняет проблему. Я также попытался изменить свойства params, но ничего не изменил. Есть идеи, ребята?

+0

Что вы нашли, исследуя проблему? –

+0

Почему я получаю ревальваторы? :) Я все еще исследую и отлаживаю, пока не повезло. – shjnlee

+0

Вы, вероятно, получаете голоса, потому что вы никоим образом не указали, что вы даже исследовали проблему. Это сообщество может быть неумолимо, если вы не играете в игру. У меня была такая же проблема, как у вас, поэтому не чувствуйте себя слишком плохо. –

ответ

0

Проблема, которую я нашел, я не использовал правильную библиотеку. Я использую opencv_world.dll для режима отладки. Я переключился в режим Release, и он решил проблему.

Смежные вопросы