/ / Алгоритм OpenCV пошуку контурів та створення обмежувального прямокутника - пітон, алгоритм, opencv, комп'ютерне бачення, контур

Алгоритм OpenCV пошуку контурів та створення обмежувального перехресного коду - python, алгоритм, opencv, комп'ютерне бачення, контур

Привіт усьому товариству програмістів!

Мені стало звично діставативизнання кожного алгоритму, який я використовую в проектах. Не так давно я реалізував методи бібліотеки OpenCV для виявлення контурів у вхідному кадрі, а також для малювання обмежувального прямокутника навколо виявленого об'єкта. Тому я поставив питання: який алгоритм насправді використовується OpenCV при виклику відповідних методів? (Я маю на увазі точні методи cv2.findContours і cv2.boundingRect)

Спасибі заздалегідь.

Відповіді:

4 для відповіді № 1

Відповідно до документації OpenCV findcontours використовує "Suzuki, S. and Abe, K., Топологічний структурний аналіз оцифрованих бінарних зображень за кордоном"

Функція отримує контури з бінарного зображення за допомогою алгоритму [Suzuki85].

Я не знайшов опис алгоритму limitingRect, але знайшов цей файл у opencv repo

7.а. Прямокутний прямокутник Це прямий прямокутник, він не враховує обертання об'єкта. Тому площа обмежуючого прямокутника не буде мінімальною. Він знаходиться за допомогою функції cv2.boundingRect (). Нехай (x, y) - верхня ліва координата прямокутника, а (w, h) - його ширина і висота. @code {.py} x, y, w, h = cv2.boundingRect (cnt) cv2.rectangle (img, (x, y), (x + w, y + h), (0,255,0), 2) @endcode

Отже, здається, що limitingRect просто знаходить мінімальні та максимальні координати вхідного набору точок

PS Вибачте за мій поганий англійський