python

您所在的位置:网站首页 提取测试点模板 python

python

2023-03-20 15:36| 来源: 网络整理| 查看: 265

霍夫圆检测(HoughCircles)

霍夫圆检测是先进行圆心的确定,然后根据圆心推导出半径。 1。圆心检测的原理:圆心是无数条直线相交的结果,那么可以设定一个阈值,如果相交于一点的直线超过了阈值,那么就可以将该点确定为圆心。 2.确定了圆心,那么圆上的点到圆心的距离是固定的,即为半径,设定阈值,如果有很多点到圆心的距离超过了阈值,那么该距离就设定为半径 3.知道了半径和圆心,那么就获取到了整个圆的方程,就可以进行圆的检测和绘制了。 霍夫圆检测代码:

import cv2 as cv import numpy as np import matplotlib.pyplot as plot img=cv.imread(r"C:\Users\Windows\Desktop\0072.jpg") img1=cv.cvtColor(img,cv.COLOR_BGR2GRAY)#转灰度图 img1=cv.Canny(img1,10,76)#边缘检测 plot.imshow(img1,cmap=plot.cm.gray) plot.show() img4=cv.HoughCircles(img1,cv.HOUGH_GRADIENT,1,200,param1=100,param2=50,minRadius=60,maxRadius=110) print(img4) for i in img4[0,:]: cv.circle(img1,(i[0],i[1]),i[2],(255,255,0),2)#绘制检测到的圆 plot.imshow(img1,cmap=plot.cm.gray) plot.show()

霍夫圆参数记录:

cv.HoughCircles(img1,cv.HOUGH_GRADIENT,1,200,param1=100,param2=50,minRadius=60,maxRadius=110)

img=待处理图像 cv.HOUGH_GRADIENT=霍夫变换使用的算法 1,200=霍夫空间分辨率,圆心之间的最小距离 param1=100 =高阈值 param2=50 =检测圆心和确定半径时用的阈值 minRadius=60,maxRadius=110 =检测到圆半径的最小值和最大值

实验结果

霍夫圆检测之前: 在这里插入图片描述 霍夫圆检测之后: 在这里插入图片描述 小记:参数调节不是很对,所以有一些偏差。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3