Найти центр контура

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

import sys
import numpy as np
import cv2 as cv


if __name__ == '__main__':
    fn = './out/0_1.png' # путь к файлу с картинкой
    img = cv.imread(fn)

    gray = cv.cvtColor( img, cv.COLOR_BGR2GRAY ) # меняем цветовую модель с BGR на HSV 
    ret, thresh = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)

    # ищем контуры и складируем их в переменную contours
    contours, hierarchy = cv.findContours(thresh.copy(), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
    moments = []

    for point in contours:
       M = cv.moments(point)
       try:
           centroid_x = int(M['m10']/M['m00'])
       except Exception:
           centroid_x = 0

       try:
           centroid_y = int(M['m01']/M['m00'])
       except Exception as e:
           centroid_y = 0

       moments.append(np.array([centroid_x, centroid_y]))

   moments = np.array(moments)
   center = (int(np.mean(moments[:, 0])), int(np.mean(moments[:, 1])))

   # отображаем контуры поверх изображения
   cv.circle(img, center, 5, (0, 255, 0), -1)
   cv.imshow('contours', img) # выводим итоговое изображение в окно

   cv.waitKey()
   cv.destroyAllWindows()

Ответы (0 шт):