天天看點

【OpenCV】求圖像中幾何形狀的質心Centroid

1. 找幾何形狀的輪廓。

2. 求輪廓的矩。

3. 求質心。

img = cv2.imread("test.jpg")
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY_INV)

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 0, 255), thickness=1)
cv2.imshow("Image", img)
cv2.waitKey(0)
for c in contours:
    M = cv2.moments(c)
    if M["m00"] != 0:
        cX = int(M["m10"] / M["m00"])
        cY = int(M["m01"] / M["m00"])
    else:
        cX, cY = 0, 0

    cv2.circle(img, (cX, cY), 5, (0, 0, 255), -1)
    cv2.imshow("Image", img)
    cv2.waitKey(0)
           
【OpenCV】求圖像中幾何形狀的質心Centroid
【OpenCV】求圖像中幾何形狀的質心Centroid
【OpenCV】求圖像中幾何形狀的質心Centroid