OpenCV Hough圆变换圆形计数

图像里圆形太多,想快速数清楚?用Hough 圆变换准没错。这套方法比较经典,OpenCV里直接就封装好了,用起来还挺顺。cv2.HoughCircles()能自动找到图像中的圆,连半径都能测出来。你只要先灰度化、滤波、做个边缘检测,再把参数调一调,基本就能搞定。

整个流程写在Hough.py里,结构清晰,适合边学边改。比如先用cv2.imread()读图像05.jpg,高斯滤波去点噪,跑cv2.Canny()找边。嗯,别忘了边缘清晰对识别效果挺关键的。

调用cv2.HoughCircles()的时候要注意几个参数:dp是分辨率缩放因子,minDist控制圆心之间的最小距离,还有两个阈值param1param2分别跟边缘和累积投票有关。圆的大小用minRadiusmaxRadius控制,按需调整。

检测出来的圆会以坐标+半径的形式返回,用cv2.circle()一画,效果立马就出来了。要显示图像?cv2.imshow()+cv2.waitKey()就行,操作简单,响应也快。

如果你刚入门图像,这套代码真的挺适合练手的。能帮你搞懂Hough 变换怎么投票找形状,也能顺手学学图像预的基本操作。工业识别、监控之类的项目也能派上用场哦。

对了,还有几个相关文章你可以顺手看看:Hough 变换实现直线检测基于 OpenCV 的图像读取与预都挺有参考价值,推荐一起看。

zip
Hough.zip 预估大小:2个文件
file
05.jpg 450KB
file
Hough.py 1KB
zip 文件大小:449.19KB