【问题标题】:Calculate major axis and minor axis of an image and draw it计算图像的长轴和短轴并绘制它
【发布时间】:2020-01-07 13:36:41
【问题描述】:

试过的代码是这样的:

# 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)

这给了我质心(红线)和蓝色的 fitEllipse 点(x,y),我想通过质心获取长轴和短轴并绘制它,但我没有不明白。有什么建议吗?

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    尝试: (x, y), (MA, ma), angle = cv2.fitEllipse(cnt)

    How to find the area of an ellipse obtained using cv.fitEllipse(contour)?

    【讨论】:

    • 这有什么意义?我刚刚计算了轮廓,需要 MA 和 ma
    • 我试过这个 ya (x, y), (MA, ma), angle = fitEllipse(cnt)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2013-08-20
    • 2012-11-12
    • 1970-01-01
    • 2018-04-08
    • 2015-07-05
    • 2012-04-17
    相关资源
    最近更新 更多