SimpleBlobDetector обнаруживает исключение - PullRequest
0 голосов
/ 08 ноября 2018

Я использую SimpleBlobDetector, конечно, для обнаружения кругов на изображениях, снятых с камеры и подвергшихся цветным и морфологическим фильтрам OpenCV. Я получаю

Исключение, выданное в 0x000 ... (opencv_imgproc249.dll) в .exe: Место чтения нарушения прав доступа 0x000 ...

Я получаю эту ошибку в строке, содержащей: d.detect(canny, keypoints); Вот пример моего кода:

std::vector<KeyPoint> keypoints;
SimpleBlobDetector d(params);
d.detect(canny, keypoints);
drawKeypoints(im, keypoints, im_with_keypoints, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

canny от использования Canny(input, canny, 10, 30);

Кто-нибудь может объяснить, почему я могу получить эту ошибку?

EDIT:

Я понял, что использую метод обнаружения ключевых точек для версии OpenCV <3. С тех пор я изменил его на: </p>

Ptr<SimpleBlobDetector> d = SimpleBlobDetector::create(params);
std::vector<KeyPoint> keypoints;
d->detect(thresh, keypoints);
drawKeypoints(im, keypoints, im_with_keypoints, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

Однако теперь у меня есть ошибка, связанная с params. Следующая ошибка гласит:

E0312 - не существует подходящего пользовательского преобразования из "cv :: SimpleBlobDetector :: Params" в "const std :: string"

Я скопировал это точно из SimpleBlobDetector Tutorial и, как ни странно, имею эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...