一、图像基本处理
通常我们获取到的原始图像包含了比较多的背景噪声,影响我们对目标的提取,因此在进行变换前,我们会采取一些预处理方法对图像进行增强,如:
1、灰度处理
2、边缘检测,常用Canny算子;
3、进行联通区域处理;
二、霍夫圆变换
opencv-python提供了HoughCircles函数来完成圆形检测及变换。
cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1,50,param1=80,param2=30,minRadius=15,maxRadius=20)
参数1 image:传递图像
参数2 method:默认,不用理解
参数3 dp:默认,不用理解
参数4 minDist:不同圆心的最小距离,单位为像素
参数5 涉及到Canny算法,这里的80为canny算法的上限,这里的canny算法下限自动设置为为上限一半,马上介绍canny算法
参数6 需要理解上面的参考文章,可以认为是需要达到的累加数量
参数7,8 为最小半径和最大半径,避免识别白色的圆圈
三、源码
import cv2
#载入并显示图片
img=cv2.imread('F:/circle/7.jpg')
#cv2.imshow('img',img)
#灰度化
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#输