import cv2
# 載入並顯示圖片
img = cv2.imread('test.jpg')
cv2.imshow('img', img)
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 輸出圖像大小,方便根據圖像大小調節minRadius和maxRadius
print(img.shape)
# 霍夫變換圓檢測
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1,
100, param1=100, param2=30, minRadius=5, maxRadius=300)
# 輸出返回值,方便查看類型
print(circles)
print(circles[0])
# 輸出檢測到圓的個數
print(len(circles[0]))
print('------------------------------')
# 根據檢測到圓的信息,畫出每一個圓
for circle in circles[0]:
# 圓的基本信息
print(circle[2])
# 座標行列
x = int(circle[0])
y = int(circle[1])
# 半徑
r = int(circle[2])
# 在原圖用指定顏色標記出圓的位置
img = cv2.circle(img, (x, y), r, (0, 0, 255), 3)
img = cv2.circle(img, (x, y), 2, (255, 255, 0), -1)
# 顯示新圖像
cv2.imshow('res', img)
# 按任意鍵退出
cv2.waitKey(0)
cv2.destroyAllWindows()