@Biba_neBoba

Как исправить ошибку при аппроксимации контуров OpenCV?

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

#Отрывок кода
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
closed = cv2.morphologyEx(canny, cv2.MORPH_CLOSE, kernel)

cnts = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for c in cnts:
    peri = cv2.arcLength(c, True)
    approx = cv2.approxPolyDP(c, 0.02 * peri, True)

#Вот ошибка
    peri = cv2.arcLength(c, True)
cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\imgproc\src\shapedescr.cpp:237: error: (-215:Assertion failed) count >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::arcLength'
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
@Biba_neBoba Автор вопроса
Нужно использовать не
cnts = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

А вот эту строку для определения массива с координатами контуров
_, cont, hier = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LazyTalent
@LazyTalent
basic
Попробуй так
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
AI Factory Санкт-Петербург
от 125 000 до 250 000 руб.
от 140 000 до 180 000 руб.
16 янв. 2019, в 10:30
5000 руб./за проект
16 янв. 2019, в 10:29
1000 руб./за проект
16 янв. 2019, в 09:06
500 руб./в час