摘要:它越小,就会发现越多的假圆与较大的累加器值相对应的圆,将首先返回最小半径最大半径
Hough Circle Transform
cv2.HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]])
image:单通道灰度图像
method:
cv2.HOUGH_STANDARD | 经典或标准霍夫变换. 每条线由两个浮点数(ρ,θ)表示,其中ρ是(0,0)点和线之间的距离,θ是x轴和线的法线之间的角度. 因此,矩阵必须是(创建的序列)CV_32FC2类型 |
cv2.HOUGH_PROBABILISTIC | 概率Hough变换(如果图像包含一些长线性段,则更有效).它返回线段而不是整行. 每个段由起点和终点表示,矩阵必须是(创建的序列)CV_32SC4类型 |
cv2.HOUGH_MULTI_SCALE | 经典霍夫变换的多尺度变体 |
cv2.HOUGH_GRADIENT |
dp:累加器分辨率与图像分辨率的逆比.例如,如果dp=1,则累加器与输入图像的分辨率相同.如果dp=2,这个累加器的宽度和高度是图像的一半.
minDist:探测到的圆的中心之间的最小距离.如果参数太小,除了真实的一个外,还可能错误地检测到多个相邻圆.如果它太大,可能会漏掉一些圆.
param1:第一个特定参数.如果是CV_HOUGH_GRADIENT的情况下,是传递给Canny边缘检测器中较高阈值的参数(低的参数小两倍).
param2:第二个特定参数.如果是CV_HOUGH_GRADIENT的情况下,它是检测阶段圆中心的累加器阈值。它越小,就会发现越多的假圆.与较大的累加器值相对应的圆,将首先返回.
minRadius:最小半径
maxRadius:最大半径
import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread("img1.jpg",0) img = cv2.medianBlur(img,5) cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, param1=50,param2=30,minRadius=0,maxRadius=0) circles = np.uint16(np.around(circles)) for i in circles[0,:]: # draw the outer circle cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2) # draw the center of the circle cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) cv2.imshow("detected circles",cimg) cv2.waitKey(0) cv2.destroyAllWindows()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42056.html
摘要:比这更短的线段被拒绝了。最大限度允许线段之间的间隙把它们当作一条线来对待 Hough Line Transform 霍夫变换是一种检测任何形状的流行技术,可以检测形状,即使它被破坏或扭曲一点点.一条线可以表示成y = mx + c或参数形式,像ρ=xcosθ+ysinθ,其中ρ是从原点到直线的垂直距离,θ角是由这条垂线和水平轴以逆时针的方向形成的(这个方向取决于你如何表示坐标系统,这...
摘要:一般调高饱和度会降低中相对较低的数值,凸显主要颜色的纯度。对当前唯一的方法霍夫梯度法,它表示在检测阶段圆心的累加器阈值。第八个参数,类型的有默认值,表示圆半径的最小值。 目录 效果展示 基础理论(HSV) 为什么用HSV空间而不是RGB空间? HSV 1、Hue(色相) 2、Value(明...
阅读 1555·2021-09-26 09:46
阅读 2632·2021-09-07 09:59
阅读 2724·2021-09-07 09:59
阅读 1818·2019-08-30 14:20
阅读 886·2019-08-26 13:39
阅读 3111·2019-08-26 12:24
阅读 744·2019-08-26 11:55
阅读 1192·2019-08-23 16:49