OpenCV - ApproPolyDP не находит прямоугольник - PullRequest
0 голосов
/ 19 января 2019

При использовании функции openCv приблизительныйPolDP на веб-канале для обнаружения прямоугольников я иногда сталкиваюсь с ошибкой.

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

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

Код для создания поли:

for(int i = 0; i < contours.size();i++) {
    double epsilon = 0.06*arcLength(contours[i], true);
    approxPolyDP(contours[i], contours[i], epsilon, true);
}

Любые идеипочему я получаю линию вместо прямоугольника?Если требуется больше кода, пожалуйста, спросите.

Результат функции, возвращающей строку

Входной сигнал в градациях серого

Вид правильного результата функции

1 Ответ

0 голосов
/ 20 января 2019

Если выходные данные drawContours содержат много сегментов (я имею в виду более двух, то есть правильный вывод), я бы попытался уменьшить эпсилон в ок. *

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