Я пытаюсь обнаружить выпуклые пятиугольники на изображении, используя OpenCV.Я использую следующее изображение:
Сначала я нахожу контуры на изображении, а затем делаю это:
approx = cv2.approxPolyDP(c, 0.04 * perimeter, True)
isPentagon = len(approx) == 5
Когда я запустил это на изображении, я получил такой результат:
Эта белая часть в изображении обнаруживается.Я думал, что проверка вогнутости решит это.Вот что я попытался сделать:
isPentagon = len(approx) == 5 and cv2.isContourConvex(c)
Однако для всех пятиугольников, которые я пробовал, isContourConvex
вернул False
.Я не уверен почему.Я пробовал и другие изображения, и то же самое произошло.Переменная c
является контуром.
Есть ли способ исправить это?Может быть, лучший способ проверить правильность многоугольника?