Вычислить центр контура / Область

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

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

  • OpenCV TypeError: контур не является массивом numpy, ни скалярным
  • Скрыть контур linestroke на pyplot.contourf, чтобы получить только заливки
  • Почему pyplot.contour () требует, чтобы Z был 2D-массивом?
  • Ссылки Opencv:

    • http://opencv.willowgarage.com/wiki/
    • http://en.wikipedia.org/wiki/OpenCV

  • Скрыть контур linestroke на pyplot.contourf, чтобы получить только заливки
  • Эффективное извлечение памяти перекрывающихся патчей из матрицы
  • Сегментирование символов абонентской платы
  • Гистограмма соответствия двух изображений в Python 2.x?
  • Совместимость изображений с OpenCV - форма формы с шаблоном формы
  • Вычесть среднее из изображения
  • 2 Solutions collect form web for “Вычислить центр контура / Область”

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

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

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

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

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

    Тот же алгоритм может также работать для X-Центра.

    Python - лучший язык программирования в мире.