Рассчитать большую ось и малую ось изображения и нарисовать его - PullRequest
0 голосов
/ 07 января 2020

Код пробуется так:

# Buscamos los contornos
(contornos,_) = cv2.findContours(canny.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
(contornos2,_) = cv2.findContours(canny2.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

print("He encontrado {} objetos".format(len(contornos)))
print("He encontrado {} objetos".format(len(contornos2)))

cv2.drawContours(img,contornos,-1,(0,0,255), 2)
cv2.drawContours(img2,contornos2,-1,(0,0,255), 2)
cv2.imshow("contornos", img)
cv2.imshow("contornos2", img2)


#momentos y centroide de la imagen de frente
m = cv2.moments(thresh)
print(m)
cX = int(m["m10"] / m["m00"])
cY = int(m["m01"] / m["m00"])

#momentos y centroide de la imagen de arriba
m2 = cv2.moments(thresh2)
print(m2)
cX2 = int(m2["m10"] / m2["m00"])
cY2 = int(m2["m01"] / m2["m00"])

centroide=cv2.circle(canny, (cX, cY), 5, (255, 255, 255), -1)
cv2.circle(canny2, (cX2, cY2), 5, (255, 255, 255), -1)
cv2.imshow("Image", canny)
cv2.imshow("Image2", canny2)


for i, c in enumerate(contornos):

    (x,y),(MA,ma),angle = cv2.fitEllipse(c)
    print(MA)
    print(ma)
    prueba=cv2.circle(centroide,(int(x),int(y)),5,(255,255,255),-1)
    cv2.imshow("prueba",prueba)
    cv2.waitKey(0)

enter image description here

Это дает мне центроид (красная линия) и точку (x, y) при выполнении fitEllipse, выделенного синим цветом, и я хочу провести большую и меньшую ось через центроид и нарисовать его, но я не понимаю. Есть предложения?

1 Ответ

0 голосов
/ 07 января 2020
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...