#python #opencv
#python #opencv
Вопрос:
Я пытаюсь написать отчет о моем проекте компьютерного зрения, который использует функцию OpenCV (Python) boundingRect
. Однако мне не разрешено говорить, что я использовал эту функцию, а скорее алгоритм / уравнение, которое использует эта функция. Я пытался найти это в Интернете, но не особенно хорошо понимаю, что именно я ищу. Сможет ли кто-нибудь подсказать, какой алгоритм boundingRect
использует уравнение? Спасибо
Используется: cv2.boundingRect(contour)
.
Ответ №1:
В Python / OpenCV ограничивающий прямоугольник, выровненный по осям, определяется как X,Y,W,H
, где X, Y — координаты минимального угла X, Y, а W, H — ширина и высота прямоугольника. Эти значения найдены путем проверки каждой точки (x, y) на контуре, чтобы найти (минимум и максимум x и y для каждого) minX, maxX, minY, maxY. Тогда значения ограничивающего прямоугольника X=minX, Y=minY, W=(maxX-minX), H=(maxY-minY)
. Вы находите минимальное и максимальное значения, перебирая каждое x (или y) и сравнивая его с предыдущим минимальным или максимальным значением. Если текущее значение меньше или выше, соответственно, замените старое значение min или max на текущее значение.
В других системах ограничивающий прямоугольник определяется минимальным и максимальным диагонально противоположными углами (minX, minY) и (maxX, maxY)
Комментарии:
1. Я не думаю, что OpenCV boundingRect использует только эту идею, поскольку она позволяет обнаруживать множество полей bouding в изображении