代码:
# -*- coding=GBK -*-
import cv2 as cv
import numpy as np
# 圆检测
def circles_image(image):
# dst = cv.pyrMeanShiftFiltering(image, 10, 100)
cimage = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
circles = cv.HoughCircles(cimage, cv.HOUGH_GRADIENT, 1, 100, param1=100, param2=30, minRadius=10, maxRadius=60)
circles = np.uint16(np.around(circles))
for i in circles[0, :]:
cv.circle(image, (i[0], i[1]), i[2], (0, 0, 255), 2)
cv.circle(image, (i[0], i[1]), 2, (255, 0, 255), 2)
cv.imshow("circular", image)
src = cv.imread("coin.png")
cv.imshow("before", src)
circles_image(src)
cv.waitKey(0)
cv.destroyAllWindows()
结果: