一种基于最小二乘法的多圆检测方法

文档序号:6541459阅读:251来源:国知局
一种基于最小二乘法的多圆检测方法
【专利摘要】本发明公开了一种基于最小二乘法的多圆检测方法,通过扫描检测图像上的目标像素点个数来判断检测图像是否为目标圆,确定检测图像为目标圆后提取目标像素点的坐标并通过最小二乘法拟合,计算高精度的目标圆圆心坐标与半径,更有效的、更快速的、更精确的检测多圆圆心,并且适用于图像质量不高的应用场合。
【专利说明】—种基于最小二乘法的多圆检测方法
[【技术领域】]
[0001]本发明涉及一种基于最小二乘法的多圆检测方法。
[【背景技术】]
[0002]机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。
[0003]随着机器视觉在工业中的广泛应用,各种特征提取与模式识别算法纷纷提出。在圆心检测中,广泛使用的算法有Hough变换及相应改进算法、最小二乘法、环路积分微分法、组合法、遗传算法、模拟退火算法等,上述各种算法各有优缺点,到目前为止,还没有哪一种算法能适应于所有环境。
[
【发明内容】
]
[0004] 本发明克服了上述技术的不足,提供了一种基于最小二乘法的多圆检测方法,通过扫描检测图像上的目标像素点个数来判断检测图像是否为目标圆,确定检测图像为目标圆后提取目标像素点的坐标并通过最小二乘法拟合,计算闻精度的目标圆圆心坐标与半径。
[0005]为实现上述目的,本发明采用了下列技术方案:
[0006]一种基于最小二乘法的多圆检测方法,其步骤如下:
[0007]第一步、设定图像的分辨率为MXN,以左上方的第一个像素点为原点,由左向右设为X轴,由上向下设为Y轴建立直角坐标系,设定目标像素点为白色的像素点,背景像素点为黑色的像素点,直角坐标系内任意点坐标为(X,y),圆心坐标为(Xe,Yc),半径为r,其中M、N、X、y为整数,r为实数;
[0008]第二步、从Χ=0,Υ=0处沿X轴正方向扫描目标像素点,判断是否扫描得到一个目标像素点;
[0009]第三步、当扫描得到一个目标像素点时,设定为第一目标像素点,坐标为(XI,Υ1),否则继续向右扫描直至X=M-1 ;
[0010]第四步、从第一目标点(XI,Yl)沿Y轴正方向扫描是否存在目标像素点,当从第一目标点(XI,Yl)沿Y轴正方向扫描得到一个目标像素点时,设定为第二目标像素点,坐标为(XI,Υ2),否则继续向下扫描直至Y=N-1 ;
[0011]第五步、计算圆心坐标Xc=Xl, 丫0=(¥1+丫2)/2,半径^ (Υ2-Υ1)/2,扫描在 Xc-r-B
<X < Xc-r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,其中B、C为常数;
[0012]第六步、当在Xc-r-B < X < Xc-r+B, Yc-C < y < Yc+C的范围内扫描得到一个目标像素点时,则扫描在Xc+r-B < X < Xc+r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,否则从第二目标像素点(XI,Y2)继续沿Y轴正方向扫描是否存在目标像素点;[0013]第七步、当在Xc+r-B < X < Xc+r+B, Yc-C < Y < Yc+C的范围内扫描得到一个目标像素点时,则扫描以圆心为(Xe,Yc)、半径为r-B和圆心为(Xe,Yc)、半径为r+B组成的圆环范围内的目标像素点个数,并判断目标像素点个数是否多于目标像素点总数阈值0.8A,其中 A=2X 31 Xr, r= (Y2-Y1) /2 ;
[0014]第八步、当扫描以圆心为(Xc,Yc)、半径为r-B和圆心为(Xe,Yc)、半径为r+B组成的圆环范围内的目标像素点个数多于目标像素点总数阈值A时,提取所有目标像素点的坐标,进行最小二乘法拟合,计算高精度的圆心坐标(Xe',Yc')与半径r',并将上述目标像素点设置成背景像素点,否则从第二目标像素点(XI,Y2)沿Y轴正方向扫描目标像素点。
[0015]所述常数B的取值范围为O≤B≤15,所述常数C的取值范围为O≤C≤15。
[0016]本发明的有益效果是:
[0017]本发明提供了一种基于最小二乘法的多圆检测方法,能有效的、快速的、精确的检测多圆圆心,尤其适用于图像质量不高的应用场合。
[【专利附图】

【附图说明】]
[0018]图1为本发明原理图一;
[0019]图2为本发明原理图二; [0020]图3为本发明原理图三;
[0021]图4为本发明原理图四;
[0022]图5为本发明的流程示意图。
[【具体实施方式】]
[0023]下面结合附图与本发明的实施方式作进一步详细的描述:
[0024]如图1所示,一种基于最小二乘法的多圆检测方法,其步骤如下:
[0025]步骤一、设定图像的分辨率为MXN,以左上方的第一个像素点为原点,由左向右设为X轴,由上向下设为Y轴建立直角坐标系,设定目标像素点为白色的像素点,背景像素点为黑色的像素点,直角坐标系内任意点坐标为(X,y),圆心坐标为(Xe,Yc),半径为r,其中M、N、X、y为整数,r为实数;
[0026]步骤二、从Χ=0,Υ=0处沿X轴正方向扫描目标像素点,判断是否扫描得到一个目标像素点;
[0027]步骤三、当从Χ=0,Υ=0处沿X轴正方向扫描得到一个目标像素点时,设定为第一目标像素点,坐标为(XI,Υ1),并从第一目标点(XI,Υ1)沿Y轴正方向扫描像素点,判断是否扫描得到一个目标像素点,否则继续向右扫描直至X=M-1 ;
[0028]步骤四、当从第一目标点(Χ1,Υ1)沿Y轴正方向扫描得到一个目标像素点时,设定为第二目标像素点,坐标为(XI,Υ2),否则继续沿Y轴正方向扫描直至Y=N-1 ;
[0029]步骤五、计算圆心坐标Xc=Xl, 丫0=(丫1+丫2)/2,半径^ (Υ2-Υ1)/2,扫描在 Xc-r-B
<X < Xc-r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,其中B、C为常数;
[0030]步骤六、当在Xc-r-B < x < Xc-r+B, Yc-C < y < Yc+C的范围内扫描得到一个目标像素点时,则扫描在Xc+r-B < X < Xc+r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,否则从第二目标像素点(XI,Y2)继续沿Y轴正方向扫描是否存在目标像素点;[0031]步骤七、当在Xc+r-B < X < Xc+r+B, Yc-C < Y < Yc+C的范围内扫描得到一个目标像素点时,则扫描以圆心为(Xe,Yc)、半径为r-B和圆心为(Xe,Yc)、半径为r+B组成的圆环范围内的目标像素点个数,并判断目标像素点个数是否多于目标像素点总数阈值0.8A,其中 A=2X 31 Xr, r= (Y2-Y1) /2 ;
[0032]步骤八、当扫描以圆心为(Xc,Yc)、半径为r-B和圆心为(Xe,Yc)、半径为r+B组成的圆环范围内的目标像素点个数多于目标像素点总数阈值A时,提取所有目标像素点的坐标,进行最小二乘法拟合,计算高精度的圆心坐标(Xe',Yc')与半径r',并将上述目标像素点设置成背景像素点,否则从第二目标像素点(XI,Y2)沿Y轴正方向扫描目标像素点。
[0033]其中,所述常数B的取值范围为O≤B≤15,所述常数C的取值范围为O≤C≤15。B和C的值根据图像质量作适当调整。
[0034]对于单圆检测,所有的目标像素点都参与首次最小二乘拟合计算,但对于多圆检测,第一步就是要将所有的目标点分成点组,再参与各个圆的圆心检测。
[0035]点组提取原理如下:
[0036]首先以图像左上方的第一个像素点为原点,由左向右设为X轴,由上向下设为Y轴建立直角坐标系;从X轴正方向扫描目标像素点,当扫描到第一个目标像素点时,设定第一目标像素点坐标为(XI,Yl);从第一目标像素点(XI,Yl)沿Y轴正方向扫描,当沿Y轴正方向扫描到另一个目标像素点时,设定第二目标像素点坐标为(XI,Y2);因此由这两个目标像素点的坐标可初步确定圆心(Xe,Yc)和半径r,分别如下:Xc=Xl,Yc= (Y1+Y2)/2,r= (Υ2-Υ1)/2。
[0037]根据圆的几何特性,在坐标点(Xc-r,Yc)和坐标点(Xc+r,Yc)处会存在两个目标点,若存在,则初步认为是一个圆;若不存在,则从第二目标点(X1,Y2)继续沿y轴正方向扫描,并重复上述步骤进行判断图像是否为一个圆。
[0038]但实际的图像中,往往存在透视变换致使图像并不是一个严格的圆,因此通过在坐标点(Xc-r,Yc)和点(Xc+r,Yc)处,分别设定一个误差范围,扫描在误差范围内是否存在目标像素点,来判断图像是否为一个圆,原理如图2所示,
[0039]若在如图2所示两个误差范围内各存在一个目标点,则初步认为是一个圆;若不存在,则从第二目标点(XI,Y2)继续沿y轴正方向扫描,通过如上方法进行判断,直至图像最下方。
[0040]误差范围大小可根据图像质量来调整,当图像质量较高时,可设置较小误差范围;当图像质量较低时,可设置较大误差范围。设置合适的误差范围可有效降低误判率。
[0041]如图3所示,当初步确定为一个圆后,根据圆心坐标(Xc,Yc)及半径r,来对整个圆的像素点设定误差范围。
[0042]由于图像中存在噪点,若因噪点影响,刚好在目标像素点误差范围内存在两个噪点(非目标点),会产生误判。因此通过比较组成这个圆的目标像素点个数是否不低于阈值A,从而判断该圆是否为目标圆。若判断为目标圆后,就将目标圆内所有目标像素点作为一个点组参与最小二乘拟合,滤除残差较大的目标像素点后,再次拟合即可获得高精度的圆心坐标(Xe,Yc)和半径r。
[0043]为了避免对下一个目标圆扫描时出现误判,提取点组后将上述组成目标圆的目标像素点置为黑色的背景像素点。
【权利要求】
1.一种基于最小二乘法的多圆检测方法,其步骤如下: a)设定图像的分辨率为MXN,以左上方的第一个像素点为原点,由左向右设为X轴,由上向下设为Y轴建立直角坐标系,设定目标像素点为白色的像素点,背景像素点为黑色的像素点,直角坐标系内任意点坐标为(X,y),圆心坐标为(Xe,Yc),半径为r,其中M、N、X、y为整数,r为实数; b)从X=O,Y=O处沿X轴正方向扫描目标像素点,判断是否扫描得到一个目标像素点; c)当扫描得到一个目标像素点时,设定为第一目标像素点,坐标为(XI,Y1),否则继续向右扫描直至X=M-1 ; d)从第一目标点(XI,Yl)沿Y轴正方向扫描是否存在目标像素点,当从第一目标点(XI,Yl)沿Y轴正方向扫描得到一个目标像素点时,设定为第二目标像素点,坐标为(XI,Y2),否则继续向下扫描直至Y=N-1 ; e)计算圆心坐标Xc=Xl,Yc= (Yl+Y2)/2,半径 r= (Y2-Y1)/2,扫描在 Xc-r-B < x<Xc-r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,其中B、C为常数; f)当在Xc-r-B< X < Xc-r+B, Yc-C < y < Yc+C的范围内扫描得到一个目标像素点时,则扫描在Xc+r-B < X < Xc+r+B, Yc-C < y < Yc+C的范围内是否存在一个目标像素点,否则从第二目标像素点(XI,Y2)继续沿Y轴正方向扫描是否存在目标像素点; g)当在Xc+r-B< X < Xc+r+B, Yc-C < Y < Yc+C的范围内扫描得到一个目标像素点时,则扫描以圆心为(Xe,Yc )、半径为r-B和圆心为(Xe,Yc )、半径为r+B组成的圆环范围内的目标像素点个数,并判断目标像素点个数是否多于目标像素点总数阈值0.8A,其中A=2X 31 Xr, r= (Y2-Y1) /2 ; h)当扫描以圆心为(Xe,Yc)、半径为r-Β和圆心为(Xe, Yc)、半径为r+B组成的圆环范围内的目标像素点个数多于目标像素点总数阈值A时,提取所有目标像素点的坐标,进行最小二乘法拟合,计算高精度的圆心坐标(Xe, ,Xe')与半径r',并将上述目标像素点设置成背景像素点,否则从第二目标像素点(XI,Y2)沿Y轴正方向扫描目标像素点。
2.一种基于最小二乘法的多圆检测方法,其特征在于:所述常数B的取值范围为O≤B≤15,所述常数C的取值范围为O≤C≤15。
【文档编号】G06T7/60GK103903284SQ201410110991
【公开日】2014年7月2日 申请日期:2014年3月24日 优先权日:2014年3月24日
【发明者】付文定 申请人:中山新诺科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1