OpenCV python 霍夫曼圆形检测
处理图片:[chess.jpg]
import cv2
import matplotlib.pyplot as plt
import numpy as np
def main():
# 1.导入图片
img_src = cv2.imread("chess.jpg")
img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
img_rgb = cv2.cvtColor(img_src, cv2.COLOR_BGR2RGB)
img_show = img_rgb.copy()
# 2.中值滤波
img_blur = cv2.medianBlur(img_gray, 5)
# 3.霍夫曼圆形检测
circles = cv2.HoughCircles(img_blur, cv2.HOUGH_GRADIENT, 1, 250,
param1=50, param2=30, minRadius=50, maxRadius=150)
circles = np.uint16(np.around(circles))
# 4.显示圆形
for i in circles[0, :]:
cv2.circle(img_rgb, (i[0], i[1]), i[2], (255, 0, 0), 12)
cv2.circle(img_rgb, (i[0], i[1]), 2, (255, 255, 255), 12)
# 5.显示图片
plt.subplot(121)
plt.imshow(img_rgb, cmap="gray")
plt.axis("off")
plt.subplot(122)
plt.imshow(img_show)
plt.axis("off")
plt.show()
if __name__ == '__main__':
main()
处理结果图片: