CN106157298B - 一种基于直线段的圆检测方法 - Google Patents
一种基于直线段的圆检测方法 Download PDFInfo
- Publication number
- CN106157298B CN106157298B CN201610369782.5A CN201610369782A CN106157298B CN 106157298 B CN106157298 B CN 106157298B CN 201610369782 A CN201610369782 A CN 201610369782A CN 106157298 B CN106157298 B CN 106157298B
- Authority
- CN
- China
- Prior art keywords
- straightway
- line
- circle
- lineregion
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于直线段的圆检测方法,该方法包括如下步骤:步骤S1,对输入图像进行预处理;步骤S2,提取图像中包含的直线段,获得由直线段组成的集合;步骤S3,在直线段集合中搜索,检测出候选圆,确定圆心和半径;步骤S4,验证候选圆,输出检测到的真实圆。本发明采用基于直线段的方法检测圆,避免直接利用边缘点进行检测,克服已有技术计算复杂度高、存储量大的缺点,具有检测速度快、准确性高等特点,可应用于对实时性要求较高的应用场景。
Description
技术领域
本发明涉及计算机视觉与模式识别、移动机器人目标检测识别等,尤其涉及圆检测方法。
背景技术
图像检测领域中,几何特征是重要的图像特征。其中圆形是在自然环境和人造环境中都极其常见的一种图像几何特征。圆检测广泛应用于计算机视觉与模式识别、物体检测、生物特征识别、道路标志检测等诸多领域。
目前圆检测方法主要分为两类:确定性方法和随机性方法。其中,确定性方法大多是基于霍夫变换(HT,Hough Transform),利用边缘检测器获取边缘信息,再推断出圆心和半径。随机性方法主要有随机霍夫变换(RHT,Random Hough Transform)——对边缘图像中边缘点进行随机采样,采用多对一映射减少计算复杂度;基于遗传算法(GA,GeneticAlgorithm)的圆检测——利用遗传算法对自然图像中多个圆(即使存在残缺)同时检测;基于随机抽样一致性(RANSAC,Random Sample Consensus)技术的圆检测等。
传统圆霍夫变换(CHT,Circle Hough Transform)方法应用广泛,但主要缺点是计算复杂度随参数空间维数呈几何级数增长,计算量和存储量都较大,难以满足实时性。虽然出现基于模板法(TM,Template Matching)、最小二乘法(LS,Least Square)等方法克服霍夫变换法的缺点,但没有根本解决霍夫变换的重要缺陷。随机性圆检测方法增加了圆检测的鲁棒性,但复杂度仍然较大。
发明内容
为了解决现有技术中问题,本发明提供了一种基于直线段的圆检测方法,该方法包括如下步骤:
步骤S1,对输入图像进行预处理;
步骤S2,提取图像中包含的直线段,获得由直线段组成的集合;
步骤S3,在直线段集合中搜索,检测出候选圆,确定圆心和半径;
步骤S4,验证候选圆,输出检测到的真实圆。
作为本发明的进一步改进,所述步骤S1,对输入图像进行预处理的方法,具体包括:如果输入图像为三通道的RGB图像,将之转换成单通道的灰度图;对灰度图进行二维高斯滤波,滤除图像噪声;根据尺度因子λ缩小图像二维尺度,消除椒盐噪声引起的直线段误检,尺度因子λ为0.5~0.8。
作为本发明的进一步改进,所述步骤S2,提取图像中的直线段方法,具体包括以下步骤:
步骤S21,对图像中的每个像素计算梯度和梯度角,根据梯度值的大小,将像素点排列成包含梯度角信息的有序点集PointSets,其中根据梯度阈值ρ,去除梯度过小的像素点;
步骤S22,对有序点集PointSets进行搜索,对某一个标记为未使用UNUSED的像素点,在其邻域内搜索将梯度角与主梯度角相差小于误差角τ的像素点添加到直线段可能域LineRegion中,并标记该像素点已经被使用USED,更新主梯度角;然后递归地,对LineRegion中的每一个点,在其领域中搜索梯度角与主梯度角相差小于误差角τ的像素点并加入到LineRegion中,直到无法再加入新的点到LineRegion中;
步骤S23,直线段可能域LineRegion中的所有点代表了提取的一条直线段Line,利用LineRegion中的所有点计算出直线段Line的起点Start、终点End、宽度Width以及方向角θline这些参数,将具有上述参数的有向直线段Line加入到提取出的直线段集合LineSets中;
步骤S24,重复步骤S22~S23,直到全部有序点集PointSets中都已搜索完毕,获得直线段集合LineSets。
作为本发明的进一步改进,
步骤S3,检测候选圆的方法,具体包括以下步骤:
步骤S31,对直线段集合LineSets进行搜索,对某一个标记为未使用UNUSED的直线段Line[i],标记Line[i]已被使用USED,在其终点End附近邻域搜索一条满足如下3条约束条件的直线段Line[i+1]:(1)该直线段Line[i+1]未被使用;(2)该直线段Line[i+1]的起点Start在直线段Line[i]的终点End的邻域内;(3)直线段Line[i+1]的方向角减去Line[i]的方向角小于一定阈值γ;
若没有搜索到满足上述3条约束条件的直线段Line[i+1],返回重新开始搜索,若搜索到满足约束的直线段Line[i+1],开始步骤S32;
步骤S32,在Line[i+1]的终点End附近邻域搜索一条满足如下4条约束条件的直线段Line[i+2]:(1)该直线段Line[i+2]未被使用;(2)该直线段Line[i+2]的起点Start在直线段Line[i+1]的终点End的邻域内;(3)直线段Line[i+2]的方向角减去Line[i+1]的方向角的差值小于一定阈值AngleThresh;(4)直线段Line[i+2]的方向角减去Line[i+1]的方向角的差值的符号与直线段Line[i+1]的方向角减去Line[i]的方向角的差值的符号相同;
若没有满足上述4条约束条件的直线段Line[i+2],返回重新开始搜索,若搜索到满足上述4条约束条件的直线段Line[i+2],开始步骤S33;
步骤S33,类似步骤S32搜索Line[i+2]的方式,根据Line[i+2]找到第4条满足约束条件的直线段Line[i+3];
步骤S34,类似步骤S33搜索Line[i+3]的方式,根据Line[i+3]找到第5条满足约束条件的直线段Line[i+4];
步骤S35,利用5条直线段Line[i]~Line[i+4]的起点Start和终点End,共10个点,进行最小二乘圆拟合,求出圆心和半径,得到一个候选圆,标记直线段Line[i+1]~Line[i+4]已被使用USED;
步骤S36,重新开始步骤S31~S35,直到直线段集合LineSets中的所有直线段都搜索完毕,标记为已被使用,获得候选圆的集合CircleSets。
作为本发明的进一步改进,
步骤S4,验证候选圆的方法,具体包括:
步骤S41,对于候选圆集合CircleSets进行搜索,若某个候选圆的圆心与另一个候选圆的圆心的距离小于一个阈值CenterDistThresh,且它们的半径的差值小于一个阈值RadiusDistThresh,则表明检测到重复的圆,删掉一个候选圆,更新候选圆集合CircleSets;
步骤S42,在更新的候选圆集合CircleSets中逐一进行搜索,对某个候选圆Circle[i],根据其圆心(Ai,Bi)和半径Ri大小,在半径均值为Ri的圆环区域内搜索,若在四个象限中的至少三个象限圆环区域内都搜索到存在直线段,则表明该候选圆是一个真实圆,而不是一个圆弧段;
步骤S43,输出检测到的包含圆心位置和半径大小的真实圆。
作为本发明的进一步改进,设像素点p(x,y)的灰度值为I(x,y),其梯度值G(x,y)和梯度角θ按如下公式计算:
作为本发明的进一步改进,
步骤S22,从有序的像素点集合PointSets中获取一个种子像素点p(x,y),将其加入到直线段可能域LineRegion中,并将种子像素点p(x,y)的梯度角作为LineRegion的角度θreg,然后对LineRegion中的每个像素点,在其3×3邻域中搜索满足以下约束的点:(1)该点未被使用UNUSED,(2)该点的梯度角θi与θreg之差小于角度误差角τ,即|θreg-θi|<τ;将满足约束的点加入到LineRegion中,标记该点被使用USED,按下面公式更新θreg:
angx=cos(θreg),
angy=sin(θreg),
angx=angx+cos(θi),
angy=angy+sin(θi),
θreg=arctan(angx/angy).(02)
按上述搜索方式搜索,直到没有新的点加入到LineRegion中,判断LineRegion中的点数,若点数小于阈值Nthresh则抛弃该LineRegion。
作为本发明的进一步改进,
步骤S23,根据直线段可能域LineRegion计算直线段参数,包括中心位置、起点、终点、方向角度和宽度,由LineRegion代表的直线段具有一定宽度,看成是一个小矩形区域,其中心位置为rec(cx,cy),计算方法是利用LineRegion中的所有点,根据所有点的梯度值进行加权平均,如下公式:
直线段方向角θline由如下矩阵的最小特征值有关的特征值计算出来:
假设上述公式(04)中矩阵M的两个特征值为λ1和λ2,λ1≥λ2,,则直线段方向角θline按以下公式计算:
θline=atan((λ2-mxx)/mxy) (05)
求得直线段方向角后,即知道直线段的方向,再对LineRegion中所有点遍历,计算该点到中心点沿直线段两个正交轴方向投影的距离,其中,最大距离lmax和最小的距离lmin的差即直线段的宽度width,起点Start和终点End的位置,通过如下公式计算:
xstart=cx+lmincos(θline),ystart=cy+lminsin(θline),
xend=cx+lmaxcos(θline),yend=cy+lmaxsin(θline).(06)。
作为本发明的进一步改进,步骤S35,利用5条直线段Line[i]~Line[i+4]的起点和终点,共10个点,记为(xi,yi),i=1,2,...10,采用最小二乘法拟合圆的参数,设圆的参数方程为:
(x-A)2+(y-B)2=R2 (07)
其中圆心(A,B),半径R,令:
可将公式(07)化为:
x2+y2+ax+by+c=0(09)
然后利用最小二乘法,可计算得到参数a、b和c:
其中,相关参数值为:
N=10;
D=N∑xiyi-∑xi∑yi,
进而拟合得到圆心和半径,然后求点(xi,yi),i=1,2,...10与拟合得到的圆心(A,B)的距离以及偏差δi=|di-R|,若偏差δi大于一定阈值μd,则表明拟合结果不理想,所选取的5条直线段不属于某个圆,返回步骤S34重新开始搜索,若偏差δi均小于一定阈值μd,则表明拟合结果合理,得到一个候选圆,标记直线段Line[i]~Line[i+4]已被使用USED,立即进入步骤S36。
本发明的有益效果是:
本发明采用基于直线段的方法检测圆,避免直接利用边缘点进行检测,克服已有技术计算复杂度高、存储量大的缺点,具有检测速度快、准确性高等特点,可应用于对实时性要求较高的应用场景。
与现有技术相比,本发明提出的基于直线段的圆检测方法的最大特点是不直接利用边缘点集合进行圆检测,而是利用直线段集合来进行圆检测。前者的重要缺点是边缘点的信息少,且边缘点数量很大(尤其是自然图像),对边缘点集合进行反复遍历,导致复杂度高。本发明提出的方法是首先采用一种快速高效的方法提取出包含更多信息的直线段,再利用直线段集合,根据圆的几何特性,通过最小二乘拟合得到圆的圆心和半径。该方法极大减小了圆检测的时间复杂度和空间复杂度,提高了检测速度和准确度,可应用于实时圆检测。
附图说明
图1是从圆形图中提取边缘直线段示例;
图2是本发明所述的快速圆检测方法的主要步骤;
图3是本发明所述直线段提取主要步骤;
图4是利用本发明的方法对示例图像提取直线段的结果;
图5是根据直线段集合检测候选圆的具体步骤;
图6是验证候选圆并输出候选圆的具体步骤;
图7是验证候选圆时直线段搜索域示意图;
图8是本发明对示例图像进行圆检测的结果。
具体实施方式
下面结合附图对本发明做进一步说明。
本发明的基本前提是利用直线段来检测圆。利用本发明的直线段检测方法可将圆的边缘提取为一系列的直线段。众所周知,对于圆内接正多边形,当正多边形的边数足够大时,即可近似为该圆。因此,本发明对圆形物体图像进行直线段检测时,相当于是提取该圆的内接正多边形的各边,再通过这些边来恢复出圆。
下面结合一幅自然图像作为示例图像来进一步阐述。
步骤S1:输入图像预处理。首先判断输入图像是否为单通道的灰度图像,若不是,则将输入图像转换成单通道的灰度图像。输入图像为三通道的RGB图像,首先采用普通方法转换成单通道的灰度图像。然后,采用二维高斯滤波方法对灰度图像进行滤波,减小图像噪声。最后根据尺度因子λ(一般取0.5~0.8,大多数时候取0.8即可,无需调整此参数)对滤波后的图像进行尺度变换,最后得到尺度变化后的灰度图像。
步骤S2,提取图像中的直线段,具体步骤如图3所示。
步骤S21,对灰度图像的每一个像素值计算梯度值和梯度角,采用2×2掩模计算。设像素点p(x,y)的灰度值为I(x,y),其梯度值G(x,y)和梯度角θ按如下公式计算:
根据梯度值G(x,y)从大到小对像素点进行排序,其中,若G(x,y)<ρ,则将该像素点排除(ρ为梯度阈值),减少噪点和无意义的点。经过排序的像素点集合为PointSets。
步骤S22,从有序的像素点集合PointSets中获取一个种子像素点p(x,y),将其加入到直线段可能域LineRegion中,并将种子像素点p(x,y)的梯度角作为LineRegion的角度θreg,然后对LineRegion中的每个像素点,在其8邻域中搜索满足以下约束的点:(1)该点未被使用UNUSED,(2)该点的梯度角θi与θreg之差小于角度误差角τ,即|θreg-θi|<τ。将满足约束的点加入到LineRegion中,标记该点被使用USED。按下面公式更新θreg:
按上述搜索方式搜索,直到没有新的点加入到LineRegion中。判断LineRegion中的点数,若点数小于阈值Nthresh则抛弃该LineRegion。
步骤S23,根据直线段可能域LineRegion计算直线段参数,包括中心位置、起点、终点、方向角度和宽度。由LineRegion代表的直线段具有一定宽度,看成是一个小矩形区域,其中心位置为rec(cx,cy),计算方法是利用LineRegion中的所有点,根据所有点的梯度值进行加权平均,如下公式:
直线段方向角θline由如下矩阵的最小特征值有关的特征值计算出来:
假设上述公式(04)中矩阵M的两个特征值为λ1和λ2,λ1≥λ2,则直线段方向角θline按以下公式计算:
θline=atan((λ2-mxx)/mxy)(05)
求得直线段方向角后,即知道直线段的方向,再对LineRegion中所有点遍历,计算该点到中心点沿直线段两个正交轴方向投影的距离。其中,最大距离lmax和最小的距离lmin的差即直线段的宽度width,起点Start和终点End的位置,可通过如下公式计算:
步骤S24,重复步骤S22-S23,得到包含参数信息的直线段集合LineSets。利用本发明的方法对示例图像提取直线段的结果如图4所示。
步骤S3,根据直线段集合检测候选圆,具体步骤如图5所示。
步骤S31,从直线段集合LineSets中选取一条标记为未使用UNUSED的初始直线段Line[i],标记Line[i]已被使用USED,在其终点End附近邻域(如5×5)搜索是否存在一条直线段Line[i+1]满足以下约束条件:(1)该直线段Line[i+1]未被使用,即标记为UNUSED;(2)该直线段Line[i+1]的起点Start在直线段Line[i]的终点End的邻域内;(3)直线段Line[i+1]的方向角θline[i+1]减去Line[i]的方向角θline[i]小于一定阈值γ,即e若没有搜索到满足上述3条约束的直线段Line[i+1],返回重新选取一条标记为未使用UNUSED的初始直线段进行搜索。若搜索到满足约束的直线段Line[i+1],立即开始步骤S32。
步骤S32,在Line[i+1]的终点End附近邻域搜索一条满足如下4条约束条件的直线段Line[i+2]:(1)该直线段Line[i+2]未被使用;(2)该直线段Line[i+2]的起点Start在直线段Line[i+1]的终点End的邻域内;(3)直线段Line[i+2]的方向角减去Line[i+1]的方向角的差值小于一定阈值,即θline[i+2]-θline[i+1]|<γ;(4)sign(θline[i+2]-θline[i+1])与sign(θline[i+1]-θline[i])符号相同。
若没有满足上述4条约束条件的直线段Line[i+2],返回步骤S31重新开始搜索。若搜索到一条满足上述4条约束条件的直线段Line[i+2],立即开始步骤S33。
步骤S33,在Line[i+2]的终点End附近邻域搜索一条满足如下4条约束条件的直线段Line[i+3]:(1)该直线段Line[i+3]未被使用;(2)该直线段Line[i+3]的起点Start在直线段Line[i+2]的终点End的邻域内;(3)直线段Line[i+3]的方向角减去Line[i+2]的方向角的差值小于一定阈值,即|θline[i+3]-θline[i+2]|<γ;(4)sign(θline[i+3]-θline[i+2])与sign(θline[i+2]-θline[i+1])符号相同。若没有满足上述4条约束条件的直线段Line[i+3],返回步骤S32重新开始搜索。若搜索到一条满足上述4条约束条件的直线段Line[i+2],立即开始步骤S34。
步骤S34,在Line[i+3]的终点End附近邻域搜索一条满足如下4条约束条件的直线段Line[i+4]:(1)该直线段Line[i+4]未被使用;(2)该直线段Line[i+4]的起点Start在直线段Line[i+2]的终点End的邻域内;(3)直线段Line[i+4]的方向角减去Line[i+3]的方向角的差值小于一定阈值,即|θline[i+4]-θline[i+3]|<γ;(4)sign(θline[i+4]-θline[i+3])与sign(θline[i+3]-θline[i+2])符号相同。
若没有满足上述4条约束条件的直线段Line[i+4],返回步骤S33重新开始搜索。若搜索到一条满足上述4条约束条件的直线段Line[i+4],立即开始步骤S35。
步骤S35,利用5条直线段Line[i]~Line[i+4]的起点和终点,共10个点,记为(xi,yi),i=1,2,...10,采用最小二乘法拟合圆的参数。设圆的参数方程为:
(x-A)2+(y-B)2=R2 (07)
其中圆心(A,B),半径R。令:
可将公式(07)化为:
x2+y2+ax+by+c=0(09)
然后利用最小二乘法,可计算得到参数a、b和c:
其中,相关参数值为:
进而拟合得到圆心和半径。然后求点(xi,yi),i=1,2,...10与拟合得到的圆心(A,B)的距离以及偏差δi=|di-R|。若偏差δi大于一定阈值μd,则表明拟合结果不理想,所选取的5条直线段不属于某个圆,返回步骤S34重新开始搜索。若偏差δi均小于一定阈值μd,则表明拟合结果合理,得到一个候选圆,标记直线段Line[i]~Line[i+4]已被使用USED,立即进入步骤S36。
步骤S36,重新开始步骤S31~S35,直到直线段集合LineSets中的所有标记为UNUSED的直线段都搜索完毕。获得候选圆的集合CircleSets。
步骤S4,验证候选圆并输出候选圆,具体步骤如图6所示。
步骤S41,对候选圆集合CircleSets,选取一个候选圆,圆心(Ai,Bi)和半径Ri,搜索,若存在另一个候选圆,圆心(Aj,Bj)和半径Rj,满足以下关系:(1)两圆心距离小于一个阈值,dij<CenterDistThresh;(2)两圆半径之差小于一个阈值|Ri-Rj|<RadiusDistThresh;表明检测到重复的圆,应该删掉。最后得到更新后的候选圆集合CircleSets。
步骤S42,遍历更新后的候选圆集合CircleSets,对某个候选圆Circle[i],根据其圆心(Ai,Bi)和半径Ri大小,在半径均值为Ri的圆环区域内搜索,如图7所示,若在四个象限中的至少三个象限圆环区域内都搜索到存在直线段,则表明该候选圆是一个真实圆,而不是一个圆弧段,否则删掉误检出的圆。更新候选圆集合CircleSets。
步骤S43,输出最后更新的候选圆集合CircleSets,即检测到的包含圆心位置和半径大小的真实圆。采用本发明对示例图像进行圆检测的结果如图8所示,正确检测出示例图中的两个圆,示例图大小271×240,检测运行时间为54ms(计算机内存2G,频率2.2GHz)。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种基于直线段的圆检测方法,其特征在于,该方法包括如下步骤:
步骤S1,对输入图像进行预处理,对输入图像进行预处理的方法,具体包括:如果输入图像为三通道的RGB图像,将之转换成单通道的灰度图;对灰度图进行二维高斯滤波,滤除图像噪声;根据尺度因子λ缩小图像二维尺度,消除椒盐噪声引起的直线段误检,尺度因子λ为0.5~0.8;
步骤S2,提取图像中包含的直线段,获得由直线段组成的集合,提取图像中的直线段方法,具体包括以下步骤:
步骤S21,对图像中的每个像素计算梯度和梯度角,根据梯度值的大小,将像素点排列成包含梯度角信息的有序点集PointSets,其中根据梯度阈值ρ,去除梯度过小的像素点;
步骤S22,对有序点集PointSets进行搜索,对某一个标记为未使用UNUSED的像素点,在其邻域内搜索将梯度角与主梯度角相差小于误差角τ的像素点添加到直线段可能域LineRegion中,并标记该像素点已经被使用USED,更新主梯度角;然后递归地,对LineRegion中的每一个点,在其邻域中搜索梯度角与主梯度角相差小于误差角τ的像素点并加入到LineRegion中,直到无法再加入新的点到LineRegion中;
步骤S23,直线段可能域LineRegion中的所有点代表了提取的一条直线段Line,利用LineRegion中的所有点计算出直线段Line的起点Start、终点End、宽度Width以及方向角θline这些参数,将具有上述参数的有向直线段Line加入到提取出的直线段集合LineSets中;
步骤S24,重复步骤S22~S23,直到全部有序点集PointSets中都已搜索完毕,获得直线段集合LineSets;
步骤S3,在直线段集合中搜索,检测出候选圆,确定圆心和半径;检测候选圆的方法,具体包括以下步骤:
步骤S31,对直线段集合LineSets进行搜索,对某一个标记为未使用UNUSED的直线段Line[i],标记Line[i]已被使用USED,在其终点End附近邻域搜索一条满足如下3条约束条件的直线段Line[i+1]:(1)该直线段Line[i+1]未被使用;(2)该直线段Line[i+1]的起点Start在直线段Line[i]的终点End的邻域内;(3)直线段Line[i+1]的方向角减去Line[i]的方向角小于一定阈值γ;
若没有搜索到满足上述3条约束条件的直线段Line[i+1],返回重新开始搜索,若搜索到满足约束的直线段Line[i+1],开始步骤S32;
步骤S32,在Line[i+1]的终点End附近邻域搜索一条满足如下4条约束条件的直线段Line[i+2]:(1)该直线段Line[i+2]未被使用;(2)该直线段Line[i+2]的起点Start在直线段Line[i+1]的终点End的邻域内;(3)直线段Line[i+2]的方向角减去Line[i+1]的方向角的差值小于一定阈值AngleThresh;(4)直线段Line[i+2]的方向角减去Line[i+1]的方向角的差值的符号与直线段Line[i+1]的方向角减去Line[i]的方向角的差值的符号相同;
若没有满足上述4条约束条件的直线段Line[i+2],返回重新开始搜索,若搜索到满足上述4条约束条件的直线段Line[i+2],开始步骤S33;
步骤S33,类似步骤S32搜索Line[i+2]的方式,根据Line[i+2]找到第4条满足约束条件的直线段Line[i+3];
步骤S34,类似步骤S33搜索Line[i+3]的方式,根据Line[i+3]找到第5条满足约束条件的直线段Line[i+4];
步骤S35,利用5条直线段Line[i]~Line[i+4]的起点Start和终点End,共10个点,进行最小二乘圆拟合,求出圆心和半径,得到一个候选圆,标记直线段Line[i+1]~Line[i+4]已被使用USED;
步骤S36,重新开始步骤S31~S35,直到直线段集合LineSets中的所有直线段都搜索完毕,标记为已被使用,获得候选圆的集合CircleSets;
步骤S4,验证候选圆,输出检测到的真实圆。
2.根据权利要求1所述的一种基于直线段的圆检测方法,其特征在于:
步骤S4,验证候选圆的方法,具体包括:
步骤S41,对于候选圆集合CircleSets进行搜索,若某个候选圆的圆心与另一个候选圆的圆心的距离小于一个阈值CenterDistThresh,且它们的半径的差值小于一个阈值RadiusDistThresh,则表明检测到重复的圆,删掉一个候选圆,更新候选圆集合CircleSets;
步骤S42,在更新的候选圆集合CircleSets中逐一进行搜索,对某个候选圆Circle[i],根据其圆心(Ai,Bi)和半径Ri大小,在半径均值为Ri的圆环区域内搜索,若在四个象限中的至少三个象限圆环区域内都搜索到存在直线段,则表明该候选圆是一个真实圆,而不是一个圆弧段;
步骤S43,输出检测到的包含圆心位置和半径大小的真实圆。
3.根据权利要求1所述的一种基于直线段的圆检测方法,其特征在于:设像素点p(x,y)的灰度值为I(x,y),其梯度值G(x,y)和梯度角θ按如下公式计算:
4.根据权利要求3所述的一种基于直线段的圆检测方法,其特征在于:
步骤S22,从有序的像素点集合PointSets中获取一个种子像素点p(x,y),将其加入到直线段可能域LineRegion中,并将种子像素点p(x,y)的梯度角作为LineRegion的角度θreg,然后对LineRegion中的每个像素点,在其3×3邻域中搜索满足以下约束的点:(1)该点未被使用UNUSED,(2)该点的梯度角θi与θreg之差小于角度误差角τ,即|θreg-θi|<τ;将满足约束的点加入到LineRegion中,标记该点被使用USED,按下面公式更新θreg:
按上述搜索方式搜索,直到没有新的点加入到LineRegion中,判断LineRegion中的点数,若点数小于阈值Nthresh则抛弃该LineRegion。
5.根据权利要求4所述的一种基于直线段的圆检测方法,其特征在于:
步骤S23,根据直线段可能域LineRegion计算直线段参数,包括中心位置、起点、终点、方向角度和宽度,由LineRegion代表的直线段具有一定宽度,看成是一个小矩形区域,其中心位置为rec(cx,cy),计算方法是利用LineRegion中的所有点,根据所有点的梯度值进行加权平均,如下公式:
直线段方向角θline由如下矩阵的最小特征值有关的特征值计算出来:
假设上述公式(04)中矩阵M的两个特征值为λ1和λ2,λ1≥λ2,则直线段方向角θline按以下公式计算:
θline=atan((λ2-mxx)/mxy) (05)
求得直线段方向角后,即知道直线段的方向,再对LineRegion中所有点遍历,计算该点到中心点沿直线段两个正交轴方向投影的距离,其中,最大距离lmax和最小的距离lmin的差即直线段的宽度width,起点Start和终点End的位置,通过如下公式计算:
6.根据权利要求5所述的一种基于直线段的圆检测方法,其特征在于:步骤S35,利用5条直线段Line[i]~Line[i+4]的起点和终点,共10个点,记为(xi,yi),i=1,2,...10,采用最小二乘法拟合圆的参数,设圆的参数方程为:
(x-A)2+(y-B)2=R2 (07)
其中圆心(A,B),半径R,令:
可将公式(07)化为:
x2+y2+ax+by+c=0 (09)
然后利用最小二乘法,可计算得到参数a、b和c:
其中,相关参数值为:
进而拟合得到圆心和半径,然后求点(xi,yi),i=1,2,...10与拟合得到的圆心(A,B)的距离以及偏差δi=|di-R|,若偏差δi大于一定阈值μd,则表明拟合结果不理想,所选取的5条直线段不属于某个圆,返回步骤S34重新开始搜索,若偏差δi均小于一定阈值μd,则表明拟合结果合理,得到一个候选圆,标记直线段Line[i]~Line[i+4]已被使用USED,立即进入步骤S36。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610369782.5A CN106157298B (zh) | 2016-05-27 | 2016-05-27 | 一种基于直线段的圆检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610369782.5A CN106157298B (zh) | 2016-05-27 | 2016-05-27 | 一种基于直线段的圆检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106157298A CN106157298A (zh) | 2016-11-23 |
CN106157298B true CN106157298B (zh) | 2018-10-19 |
Family
ID=57353215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610369782.5A Active CN106157298B (zh) | 2016-05-27 | 2016-05-27 | 一种基于直线段的圆检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106157298B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016700B (zh) * | 2017-04-14 | 2019-06-25 | 中国科学院合肥物质科学研究院 | 一种基于数字图像的圆形物体检测方法 |
CN109544461B (zh) * | 2017-09-22 | 2020-11-03 | 阿里巴巴(中国)有限公司 | 一种桶形畸变图像的校正方法及装置 |
CN108053442B (zh) * | 2017-10-25 | 2021-08-17 | 华南农业大学 | 一种基于图像的药敏片抑菌圈大小测量方法 |
CN108470144B (zh) * | 2018-01-31 | 2021-05-04 | 浙江工业大学 | 一种基于曲线分段的汽车方向盘检测方法 |
CN108256495B (zh) * | 2018-01-31 | 2020-05-19 | 浙江工业大学 | 一种基于假定圆检测的汽车方向盘检测方法 |
CN110349199B (zh) * | 2019-06-25 | 2021-07-30 | 杭州汇萃智能科技有限公司 | 一种物体圆度测量方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859555B1 (en) * | 2000-09-19 | 2005-02-22 | Siemens Corporate Research, Inc. | Fast dominant circle detection through horizontal and vertical scanning |
CN103927743A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院长春光学精密机械与物理研究所 | 一种遥感成像中人造目标的检测方法 |
CN103971126A (zh) * | 2014-05-12 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 一种交通标志识别方法和装置 |
-
2016
- 2016-05-27 CN CN201610369782.5A patent/CN106157298B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859555B1 (en) * | 2000-09-19 | 2005-02-22 | Siemens Corporate Research, Inc. | Fast dominant circle detection through horizontal and vertical scanning |
CN103927743A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院长春光学精密机械与物理研究所 | 一种遥感成像中人造目标的检测方法 |
CN103971126A (zh) * | 2014-05-12 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 一种交通标志识别方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于Hough变换运用形状角及梯度检测圆;方菲;《机械工程与自动化》;20150228(第1期);135-137 * |
Also Published As
Publication number | Publication date |
---|---|
CN106157298A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106157298B (zh) | 一种基于直线段的圆检测方法 | |
CN105787937B (zh) | 一种基于osm的高分辨遥感影像道路变化检测方法 | |
CN105354866B (zh) | 一种多边形轮廓相似度检测方法 | |
CN108319949A (zh) | 一种高分辨率遥感图像中多朝向舰船目标检测与识别方法 | |
Palenichka et al. | Automatic extraction of control points for the registration of optical satellite and LiDAR images | |
CN106778823A (zh) | 一种指针式仪表读数自动识别方法 | |
CN111160337A (zh) | 一种指针式仪表读数的自动识别方法、***、介质及设备 | |
CN102982323B (zh) | 快速步态识别方法 | |
CN106530347A (zh) | 一种稳定的高性能圆特征检测方法 | |
CN108491498A (zh) | 一种基于多特征检测的卡口图像目标搜索方法 | |
CN109523516A (zh) | 一种基于双重约束条件的对象级土地覆盖变化检测方法 | |
CN105488486A (zh) | 防止照片攻击的人脸识别方法及装置 | |
Hasan et al. | Modified SIFT for multi-modal remote sensing image registration | |
Qingguo et al. | A methodology framework for retrieval of concrete surface crack′ s image properties based on hybrid model | |
CN106897723B (zh) | 基于特征匹配的目标实时识别方法 | |
CN104282001A (zh) | 增强图像特征二值描述子性能的方法 | |
CN113298007B (zh) | 一种小样本sar图像目标识别方法 | |
CN113128518B (zh) | 基于孪生卷积网络和特征混合的sift误匹配检测方法 | |
CN114332172A (zh) | 一种基于协方差矩阵改进的激光点云配准方法 | |
CN113298725A (zh) | 一种轮船图标图像叠加误差的纠正方法 | |
CN117115652A (zh) | 一种基于可见光谱视觉遥感的林地退化目标检测识别方法 | |
CN115511928A (zh) | 多光谱图像的匹配方法 | |
Zhou et al. | Road detection based on edge feature with GAC model in aerial image | |
CN104992432B (zh) | 多模图像配准方法 | |
Guerrini et al. | Innerspec: Technical report |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |