У меня есть этот код, который создает контуры.
Код: Выделить всё
import numpy as np
import cv2 as cv
# Read in Image, convert to grayscale
image_path = r"moon_check.png"
im = cv.imread(image_path)
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
# Threshold, then find contours
ret, thresh = cv.threshold(imgray, 0, 1, cv.THRESH_BINARY + cv.THRESH_OTSU)
contours, hierarchy = cv.findContours(thresh, cv.RETR_EXTERNAL , cv.CHAIN_APPROX_NONE)
contours = sorted(contours, key=cv.contourArea, reverse=True)
test = im
cnt = contours[0]
, но я хочу уменьшить коэффициенты, не захожу, а не в коэффициенте, что не так уж. Ниже терминатора, оставив меня только с изогнутыми элементами вверху. настройка. Кроме того, перейти от подгонки к поддержанию ближайших к этой подходящей подходящей стороне точек довольно неотъемлемо. Я думаю, что я мог бы применить его итеративно и отфильтровать с помощью минимального дистанции к кругу окружения, но это не кажется особенно эффективным. < /P>
< /li>
Я попробовал кружок Opencv Hough, но он не работал хорошо, используя изображение Greyscale--, вероятно, из-за того, что я избегал смыкания и т.д. Контуры создают классический метод посадки круга, такой как KASA's или Coope's Not Work Dop. Должен ли я менять, как я подхожу к начальному созданию контура в первую очередь?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -curvature