Сообщество пользователей сообщества 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, двоичная рамка, созданные до тех строк кода:
Я использую OpenCV 3. Проблема была на линии извещателя> обнаружить (fgMaskMOG2, myBlobs); Я читал другие темы и не думаю, что проблема в коде, потому что другие люди сделали то же самое. Я попытался преобразовать фрейм в CV_GRAY2RGB и CV_8UC1, но это не устраняет проблему. Я также попытался изменить свойства params, но ничего не изменил. Есть идеи, ребята?
Что вы нашли, исследуя проблему? –
Почему я получаю ревальваторы? :) Я все еще исследую и отлаживаю, пока не повезло. – shjnlee
Вы, вероятно, получаете голоса, потому что вы никоим образом не указали, что вы даже исследовали проблему. Это сообщество может быть неумолимо, если вы не играете в игру. У меня была такая же проблема, как у вас, поэтому не чувствуйте себя слишком плохо. –