以下為範例程式:
import cv2
# 讀取圖像,並將其轉換為灰度圖像
img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 進行閾值處理,以便更好地找到輪廓
ret, thresh = cv2.threshold(gray, 127, 255, 0)
# 查找輪廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 繪製輪廓,以便在圖像上進行視覺化
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
# 計算輪廓的中心點
if len(contours) > 0:
# 取最大的輪廓
c = max(contours, key=cv2.contourArea)
# 計算輪廓的矩
M = cv2.moments(c)
# 計算中心點座標
center_x = int(M["m10"] / M["m00"])
center_y = int(M["m01"] / M["m00"])
# 繪製中心點,以便在圖像上進行視覺化
cv2.circle(img, (center_x, center_y), 5, (255, 0, 0), -1)
# 顯示圖像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()