Рассчитать центр контура / Площадь - PullRequest
4 голосов
/ 09 июня 2009

Я работаю над цепочкой обработки изображений, которая разделяет отдельный объект по цвету и контуру, а затем вычисляет y-позицию этого объекта.

Как рассчитать центр контура или области с помощью OpenCV?

Opencv ссылки:

Ответы [ 2 ]

10 голосов
/ 09 июня 2009

Вы можете получить центр масс в направлении у, сначала вычислив Моменты . Тогда центр масс задается как yc = M01 / M00, где M01 и M00 - поля в структуре, возвращаемой вызовом Moments.

Если вам просто нужен центр ограничивающего прямоугольника, это также легко сделать с помощью BoundingRect . Это возвращает вам CvRect, и вы можете взять только половину высоты.

Дайте мне знать, если это не достаточно точно, у меня есть образец кода, который я могу найти для вас.

0 голосов
/ 09 июня 2009

Я точно не знаю, что такое OpenCV, но я бы предложил следующее:

Выбранный кластер пикселей имеет максимальную ширину в одной точке - w - поэтому предположим, что область имеет w вертикальных столбцов пикселей. Теперь я бы взвесил столбцы в соответствии с количеством пикселей, содержащихся в столбце, и использовал эти весы столбцов для определения горизонтальной центральной точки.

Тот же алгоритм может работать и для X Center.

...