一种非编码圆环形标记点圆心图像坐标检测方法

xiaoxiao2021-2-25  371

一种非编码圆环形标记点圆心图像坐标检测方法
【技术领域】
[0001] 本发明属于图像处理与模式识别领域,具体公开了一种非编码圆环形标记点圆屯、 图像坐标检测方法。
【背景技术】
[0002] 基于立体视觉原理的Ξ维重建技术是一项应用立体视觉原理获得物体Ξ维形貌 信息的技术,其通过拍摄被测物体图像,根据相机标定参数及立体视觉图像特征点的匹配 关系,利用Ξ角测量原理求解物体被摄面上点的空间Ξ维坐标,生成Ξ维点云,进而重建出 物体Ξ维形貌。由于相机视场有限,仅能覆盖物体的部分表面,同时不可避免会有一些表面 落入阴影而无法重建,因此单次拍摄只能获得物体局部的Ξ维信息。而在大多数Ξ维重建 应用场合下,为完整重建物体表面,需要对物体从不同角度进行多次拍摄,并将重建得到的 局部点云利用点云拼接方法拼接至同一坐标系。
[0003] 在现有的点云拼接方法中,基于标记点的方法是其中精度较高、柔性较好的一种 方法。该方法将一定数量印有明显特征图案的标记点贴纸粘附于物体表面,并通过对标记 点的检测求解所摄表面在空间中的位置及姿态。其关键步骤之一是从相机拍摄到的物体表 面标记点图像上检测出标记点并确定其在图像上的坐标。标记点检测方法的鲁棒性、检测 效率及检测速度直接关系到点云拼接整体性能乃至能否正确拼接。
[0004] 非编码标记点是基于标记点的点云拼接方法中常用的一种标记点,有别于编码标 记点,其本身并不提供身份识别编码信息,但其制作及使用比较简便,尤其适用于较小尺寸 物体的Ξ维重建点云拼接。非编码标记点图案有多种模式,其中,一种由黑色外环和中央白 色内圆两部分组成,几何特征为圆形的非编码标记点比较常用,本发明方法即针对该种标 志点进行检测。对该种非编码圆环标记点的检测可纳入图像处理领域楠圆识别范畴,然而, 对其直接应用现有楠圆识别算法识别效果较差,原因是Ξ维重建技术一般被应用于复杂面 型的重建,物体表面曲率变化大,导致物体表面易出现光照不均的情况,该情况一方面会造 成伪边缘,干扰标记点边缘提取;另一方面会导致使用固定阔值对图像进行二值化处理时, 较多标记点由于处于曲面阴影处而被二值化处理过滤掉。同时,复杂面型可能导致标记点 平面法向相对相机光轴角度变化幅度大,使部分圆环图像呈楠圆形,且长径比不一致,用单 一长径比阔值区分楠圆易导致大量标记点被漏检。因此利用现有方法检测非编码圆环形标 记点在识别鲁棒性及效率上不够理想。针对该问题,有必要根据非编码圆环形标记点的几 何特征,开发一种对其圆屯、图像坐标进行识别的兼具检测精度及效率的检测方法。

【发明内容】

[0005] 针对现有技术存在的不足,本发明提出一种非编码圆环形标记点圆屯、图像坐标检 测方法,W实现利用其为后续点云拼接过程提供精确的标记点圆屯、坐标的目的。
[0006] 本发明的技术方案:
[0007] -种非编码圆环形标记点圆屯、图像坐标检测方法,包括如下步骤:
[000引步骤1:将物体表面处理为白色,并在白色物体表面粘贴多个非编码圆环标记点, 所述圆环形标记点外环颜色为黑色,内圆颜色为白色;
[0009]步骤2:获取物体原始图像,并对所述原始图像进行灰度化处理得到灰度图像Ig; [0010]步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im:
[0011]步骤4:对遮罩图像Im进行腐蚀处理,得到腐蚀后的遮罩图像;
[0012]步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像le;
[0013] 步骤6:利用腐蚀后的遮罩图像I。/对边缘图像le进行遮罩操作,过滤掉图像le中的 伪边缘,得到遮罩后的边缘图像1/ :
[0014] 步骤7:逐行遍历遮罩后的边缘图像1/,确定图像中的标记点圆屯、位置及标记点 横向宽度;
[0015] 假设遮罩后的边缘图像1/宽度为W像素,高度为Η像素;采用向量r作为步骤7的结 果进行输出;
[0016] 步骤7-1:判断1/第i E [Ο,Η)行是否与标记点边缘相交,若是,则确定出相应交 点;方法为:
[0017] 步骤7-1-1:对1/第ie[0,H)行图像连续取两点j和j+1,其中_]'£[0,胖-1),将像素 灰度值由0跳变至1时的j值按照检出先后顺序存入向量P;所述j值用于反映疑似标记点边 缘位置;
[0018] 步骤7-1-2:遍历P中的元素:若P中元素个数少于4,则认为1/第i行不与任何标记 点的边缘相交,转至步骤7-1-1直接对下一行进行遍历;否则,从P中依次取出连续的4个元 素 Pk、Pk+l、Pk+2、Pk+3,其中 k e [ 0 , Sp-4 ),Sp表示P 中元素个数;令di = pk+广pk,d2 = pk+2-pk+i,d3 = Pk+3-pk+2,若同时满足:ED < di<抓、MD < d2<MU、ED < d3<EU、di < d2,d3 < d2和 I cU-d31 < £11,则认为1/第1行与疑似标记点1^边缘相交,其中91<刪+1、91<+2、91<+3为1/第1行与疑似标记 点k边缘相交所得的交点;如此,可分别得到1/第i行与相应的若干个疑似标记点边缘相交 的交点;所述抓、抓为遮罩后的边缘图像1/上圆环形标记点外环与内环径向距离的上、下 限值;所述MU、MD为圆环形标记点内圆截径上、下限值;
[0019] 步骤7-2:利用步骤7-1得到的1/第i行分别与若干个疑似标记点边缘相交所得的 交点依次对向量q进行赋值,即将1、如+口1<+1)/2、如+2+口1<+3)/2存入向量9,并判断向量;1"是否 具有元素,否,则将向量q直接推入向量r,是,则判断向量q所代表的标记点是否已经存在于 r中;若向量q与向量r中的任意元素均不属于同一标记点,则将向量q推入向量r尾部;若向 量q与向量r中的元素 r[η]来自同一标记点,则通过比较r[η]与向量q所代表疑似标记点边 缘分别截取第r[n][0]行及第q[0]行扫描线所截得线段长度的大小,确定是否用q替换r [η];
[0020] 所述判断向量q所代表的标记点是否已经存在于r中的方法为:针对向量q,遍历向 量r;令dy = q[0]-;r[n] [0],dx = q[2]-;r[n] [2],若同时满足:dy<MU/2及扯<抓/2,则认为 向量q与r [η]来自同一标记点;其中η表示r中元素序号;否则认为向量q与;Γ[η]来自不同标 记点;
[0021] 所述比较r[n]与向量q所代表疑似标记点边缘分别截取第r[n][0]行及第q[0]行 扫描线所截得线段长度大小的方法为:设初始状态下r[n]可更新性为真,令壯= r[n][2]-r
[n][l]-(q[2]-q[l]):若壯<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长 度大于r[n][0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更 接近疑似标记点圆屯、,此时若r[n]可更新性为真,则用q替代r[n];若df >0,说明继续遍历 图像将不能使q更靠近疑似标记点圆屯、,将r[n]的可更新性设为假;
[0022] 步骤7-3:按照步骤7-1至步骤7-2对遮罩后的边缘图像1/第i行的遍历方法,完成 遮罩后的边缘图像1/的逐行遍历,由此可通过r中元素确定出图像中的疑似标记点圆屯、位 置及疑似标记点横向宽度;
[0023] 步骤8、利用步骤7得出的疑似标记点圆屯、信息,从1/上疑似圆屯、处起始,纵向遍 历寻找标记点边缘,确定疑似标记点纵向范围;具体方法为:
[0024] 遍历向量r,从边缘图像1/上疑似标记点圆屯、点即坐标为((r[η] [1]+1·[η] [2])/ 2,:r[n][0])处对]V第(:r[n][l]+;r[n][2]V2列分别竖直向上及向下遍历;令yu为向上遍历 到达标记点边缘所需步数,yd为向下遍历到达标记点边缘所需步数;若有yd+yu>MU,说明r [η]所代表的疑似标记点圆屯、点到同列上下边缘点的距离超出了合理范围,该疑似点应排 除,否则将yd、yu作为该疑似标记点的纵向范围依次推入r[η];
[0025] 步骤9:围绕疑似标记点圆屯、,并根据疑似标记点横向及纵向范围,在灰度图像Ig 上构建矩形感兴趣区域R0I;
[0026] 遍历步骤8得到的向量r,若r[n]中元素个数不为5,则跳过,否则R0I中屯、(xc,yc)在 Ig上的坐标为((r[n][l]+r[n][2 ])/2,r[n][0]),R0I中屯、点距区域左、右、上、下边缘距离 分别为:wl = Xc-:r[n] [1]巧U、wr = ;r[n] [2]-Xc巧U、wt = ;r[n] [3]+抓和wb = r[n] [4]巧U;且若 Xc_wl < 0,则令 wl = Xc;若 W-wr-Xc-l < 0,则令 wr=W-Xc-1;若 yc_wt < 0,则令 wt = yc;若 H-wt-yc-l<0,则令wt = H-yc-l;
[0027] 步骤10、利用化enCV提供的斑点检测算法求解标记点圆屯、坐标精确值;方法为:
[0028] 首先对步骤9得到的R0I进行二值化处理,继而对R0I进行反相处理;再利用化enCV 提供的斑点检测算法提取R0I内的闭合轮廓,并通过如下步骤判断所述闭合轮廓是否来自 圆环标记点:
[0029] a、判断轮廓偏屯、率E是否满足楠圆或正圆偏屯、率取值范围[0,1);
[0030] b、定义轮廓凸度V = S/Sh,判断轮廓凸度是否接近楠圆或正圆轮廓凸度,即是否有 1-ν<ε;其中S表示轮廓面积,Sh表示轮廓的凸包面积,ε为预设的轮廓凸度阔值;
[0031] 通过上述偏屯、率判断及凸度判断的轮廓,其质屯、在R0I坐标系下的坐标为(X,y), 而R0I中屯、在原图像中的坐标为(Xc,yc),R0I中屯、与R0I坐标系原点的横向、纵向距离分别为 wl、wt,则检测出的标记点圆屯、在灰度图像Ig坐标系中的坐标(Χ,Υ)为:
[0032] (.义,;').=(疋.+.史-.蛛/,九+;歹.-心).。
[0033] 综上所述,本发明的技术方案可W概括为:首先通过化nny边缘检测获得图像上可 能代表标记点的边缘,并通过腐蚀后的全局二值化图像建立对边缘图像的遮罩,过滤掉图 像中的伪边缘。在获得边缘图像后,利用逐行扫描的方式结合对标记点图像尺度的预估值 (10、111、60、61])判断所检出边缘是否来自标记点,并初步获得标记点圆屯、坐标及其横、纵向 范围。最后,利用初步获得的圆屯、坐标及标记点在腐蚀后的边缘图像上的范围信息,在灰度 图像Ig上构建感兴趣区域R0I,并在R0I中利用化enCV提供的斑点检测算法确定标记点质 屯、,最终获得所求标记点圆屯、在原图像上的坐标。
[0034] 本发明有益效果:本发明方法结合非编码圆环形标记点的几何特征对其进行识 另Ij,相比于现有非编码标记点识别方法及一般的楠圆识别方法,具有显著优点:
[0035] 1、利用化nny算子提取图像边缘,但并未直接通过设定阔值的方式从中过滤、提取 标记点轮廓,而是将其作为后续行扫描确定标记点边缘的初始数据,从而避免了阔值选取 不当造成标记点漏检或误检;
[0036] 2、对原始图像的灰度图像进行了全局二值化,但并未直接采用该二值图像进行轮 廓提取及楠圆拟合,为避免全局阔值选择对检测效果的影响,本发明将其腐蚀后作为遮罩, 过滤掉边缘图像中的大部分伪边缘,运一操作降低了边缘图像内的伪边缘数量,使后续行 扫描检测标记点边缘计算量减小,同时使化nny算子对边缘强度阔值的要求可W适当降低, 从而有利于完整地检出标记点边缘;
[0037] 3、利用逐行扫描大致确定标记点图像位置,并在运些位置构建感兴趣区域R0I, R0I面积根据步骤7得到的标记点宽度、步骤8得到的标记点高度信息动态确定。
[0038] 综上所述,本发明根据对标记点范围的初步判断将标记点检测范围缩小至R0I, R0I范围内的伪边缘及灰度变化得到限制,故不易受光照不均的影响。同时由于步骤7、步骤 8对腐蚀后边缘图像中的边缘进行了预选,使所构建R0I很可能包含标记点,因此可W放宽 几何准则、形状准则的判定阔值,故可W克服标记点图像楠圆化影响。
【附图说明】
[0039] 图1为本发明一种实施方式的非编码圆环形标记点圆屯、图像坐标检测方法流程 图;
[0040] 图2(a)为本发明一种实施方式的原始灰度图像示意图;(b)为(a)的边缘图像示意 图;(C)为腐蚀后的遮罩图像示意图;(d)为(b)经过(C)遮罩后得到的边缘图像示意图;(e) 为(a)的初步标记点检测结果示意图;(f)为(a)的最终标记点检测结果示意图;
[0041] 图3(a)为本发明一种实施方式的原始灰度图像示意图;(b)为对(a)采用全局阔值 二值化后利用化enCV提供的斑点检测算法的标记点检测结果示意图;(C)为对(a)采用本发 明的非编码圆环形标记点圆屯、图像坐标检测方法的标记点检测结果示意图。
【具体实施方式】
[0042] 下面结合附图对本发明的【具体实施方式】作详细说明。
[0043] 本实施方式的非编码圆环形标记点圆屯、图像坐标检测方法,如图1所示,包括如下 步骤:
[0044] 步骤1:通过喷涂白色显影剂等方式将物体表面处理为白色,并在白色物体表面粘 贴多个非编码圆环标记点;所述圆环形标记点外环直径为5mm、颜色为黑色;所述圆环形标 记点内圆直径为3mm、颜色为白色;
[0045] 步骤2:通过相机拍摄的方法获取物体原始图像,并对原始图像进行灰度化处理得 至化位单通道灰度图像Ig;本实施方式中在拍摄时相机距物体约400mm;
[0046] 步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im:其中二值 化阔值由用户根据图像明暗情况自行设定。本实施方式中的二值化阔值设定为60, ?? /'.('、-,ν')>/) Ε0047] /"知>')二)0 心 、 ? '一
[0048] 式中b = 60为二值化阔值;(X,y)表示像素点在原始图像坐标系下的坐标,其中原 始图像坐标系原点为图像左上角点,X轴沿图像宽度方向水平向右,y轴沿图像高度方向竖 直向下;本实施方式中Wl(x,y)表示(x,y)点在图像I上的灰度值,同理,Im(x,y)表示(x,y) 点在遮罩图像Im上的灰度值,Ig(x,y)表示(x,y)点在灰度图像Ig上的灰度值。
[0049] 步骤4:利用化enCV提供的腐蚀图像处理方法(erode)对遮罩图像Im进行腐蚀,得 到腐蚀后的遮罩图像I。/,其中腐蚀核为7X7像素矩形;
[0050] 步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像le;本实施方式 中将低阔值(low t虹eshold)设为1,高阔值化igh t虹eshold)设为200;
[0051] 步骤6:利用腐蚀后的遮罩图像I。/对边缘图像le进行遮罩操作,过滤掉图像le中的 伪边缘,得到遮罩后的边缘图像I/;遮罩后的边缘图像1/在检出的边缘处像素值为1,其余 像素值为0:
[0化2]
[0053] 其中l/(x,y)表示(x,y)点在遮罩后的边缘图像1/上的灰度值;Ie(x,y)表示(X, y)点在边缘图像le上的灰度值;Im/(x,y)表示(x,y)点在腐蚀后的遮罩图像I。/上的灰度值;
[0054] 步骤7:逐行遍历遮罩后的边缘图像1/,确定图像中的标记点圆屯、位置及标记点 横向宽度;
[0055] 假设遮罩后的边缘图像1/宽度为W像素,高度为Η像素;采用向量r作为步骤7的结 果进行输出;
[0056] 步骤7-1:判断1/第iE[0,H)行是否与标记点边缘相交,若是,则确定出相应交 点;方法为:
[0057] 步骤7-1-1:对1/第i E [0 ,Η)行图像连续取两点j和j+1,其中jE[0,W-l),记录像 素灰度值由0跳变至1时的j值,j值反映了疑似标记点边缘位置,将得到的j值按照检出先后 顺序存入向量P;
[005引步骤7-1-2:遍历P中的元素,由于标记点在遮罩后的边缘图像1/上表现为线宽为 1像素的同屯、楠圆环,因此行扫描线在靠近楠圆中屯、的位置穿过标记点必与标记点边缘相 交4次,即发生4次跳变;若P中元素个数少于4,则认为1/第i行不与任何标记点的边缘相 交,转至步骤7-1-1直接对下一行进行遍历;否则,从P中依次取出连续的4个元素 pk、pk+i、 Pk+2、Pk+3,其中 kE[0,Sp-4),Sp 表不 P 中元素个数;令 dl = f)k+广 Pk,cb = F>k+2-pk+l,cb = F>k+3-pk+2, 若同时满足:邸 < di<抓、MD < d2<MU、抓 < d3<抓、di < d2,d3 < d2和 I cU-d31 <抓,则认为le' 第i行与疑似标记点k边 缘相交,其中91<、9^、9片2、9片3为1/第1行与疑似标记点1^边缘相交所 得的交点;如此,可分别得到1/第i行与相应的若干个疑似标记点边缘相交的交点;所述 EU、抓为遮罩后的边缘图像1/上圆环形标记点外环与内环径向距离的上、下限值;所述MU、 MD为圆环形标记点内圆截径上、下限值;所述抓、ED、MU和MD事先根据圆环形标记点在原始 图像上的大小给定,单位均为像素;本实施方式中给定抓=15、邸=1、MU = 50及MD = 2。
[0059]步骤7-2:利用步骤7-1得到的1/第i行分别与若干个疑似标记点边缘相交所得的 交点依次对向量q进行赋值,即将1、如+口1<+1)/2、如+2+口1<+3)/2存入向量9,并判断向量;1"是否 具有元素,否,则将向量q直接推入向量r,是,则判断向量q所代表的标记点是否已经存在于 r中;其中q中元素 i即q[0]表示扫描行序号,(pk+pk+i)/2即q[l]表示第i行扫描线与疑似标 记点k左侧边缘两个交点的横坐标平均值,(pk+2+Pk+3)/2即q[2]表示第i行扫描线与疑似标 记点k右侧两个交点的横坐标平均值,由此可近似认为疑似标记点k边缘截取扫描线所得截 线段中点横坐标为(Pk+pk+i+pk+2+pk+3) /4,即(q [ 1 ] +q [ 2 ]) /2,疑似标记点k边缘截取扫描线 所得截线段长度为(Pk+2+Pk+3)/2-(pk+pw)/2,即q[2]-q[l];
[0060] 所述判断向量q所代表的标记点是否已经存在于r中的方法为:针对向量q,遍历向 量r;令dy = q[0]-;r[n] [0],dx = q[2]-;r[n] [2],若同时满足:dy<MU/2及扯<抓/2,则认为 向量q与r [η]来自同一标记点;其中η表示r中元素序号;否则认为向量q与;Γ[η]来自不同标 记点,若向量q与向量r中的任意元素均不属于同一标记点,则将向量q推入向量r尾部;
[0061] 若向量q与r[n]来自同一标记点,则比较r[n]与向量q所代表疑似标记点边缘分别 截取第r[n][0]行及第q[0]行扫描线所截得线段长度,由楠圆几何性质可知,疑似标记点圆 屯、所在行扫描线被标记点边缘所截得的水平截线段在该标记点所有水平截线段中长度取 得极大值,因此当截线段长度取得极大值时可W认为该截线段所在行最为接近疑似标记点 圆屯、所在行;比较方法为:设初始状态下r[n]可更新性为真,令df = r[n][2]-r[n][l]-(q
[2]-q[l]):若壯<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长度大于r[n]
[0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更接近疑似标 记点圆屯、,此时若r[n]可更新性为真,则用q替代r[n];若壯含0,说明继续遍历图像将不能 使q更靠近疑似标记点圆屯、,为防止误匹配,将r[n]的可更新性设为假,由此可W保证完成 对图像1/的遍历后r[n][0]最为接近r[n]所代表的标记点圆屯、在图像1/上的纵坐标,r[n] [2]-r[n][l]最为接近r[n]所代表标记点在图像1/上的横向宽度;
[0062] 步骤7-3:按照步骤7-1至步骤7-2的方法,完成遮罩后的边缘图像1/的逐行遍历, 确定出图像中的标记点圆屯、位置及标记点横向宽度;
[0063] 步骤8、利用步骤7得出的疑似标记点圆屯、信息,从1/上疑似圆屯、处起始,纵向遍 历寻找标记点边缘,确定疑似标记点纵向范围;具体方法为:
[0064] 遍历向量r,从边缘图像I/上疑似标记点圆屯、点坐标为((:r[n][l]+;r[n][2])/2,r [n][0])处对1/第(r[n][l]+r[n][2])/2列分别竖直向上及向下遍历,由于在遮罩后的边 缘图像1/上标记点表现为同屯、闭合楠圆,则理论上若该疑似圆屯、点确为标记点圆屯、,则从 该疑似圆屯、点出发,向上及向下遍历必经过有限步长抵达标记点边缘;令yu为向上遍历到 达标记点边缘所需步数,yd为向下遍历到达标记点边缘所需步数;若有yd+yu>MU,说明r [η]所代表的疑似标记点中屯、点到同列上下边缘点的距离超出了允许范围,贝巧郎余该疑似 点,否则将yd、yu作为该疑似标记点的纵向范围依次推入;r[n];
[0065] 步骤9:围绕疑似标记点圆屯、,并根据疑似标记点横向即纵向范围,在灰度图像Ig 上构建矩形感兴趣区域R0I;
[0066] 遍历步骤8得到的向量r,由于r在步骤7-2中被存入q,q中包含3个元素,而在步骤8 中通过该步判断条件的r[η]又被存入yd、yu两个元素,因此通过步骤8判断的r [η]中应有5 个元素,若r[n]中元素个数不为5,则跳过,否则由步骤7及步骤8所给出的r[n]中元素的含 义,301中屯、^。,7。)在18上的坐标为((1'[11][1]+1'[]1][2])/2,1'[]1][0]),1?01中屯、点距区域 左、右、上、下边缘距离分别为:wl = Xc-:r[n] [l]+EU、wr = ;r[n] [2]-Xc巧U、wt = ;r[n] [3]+抓和 wb = r[n][4]巧 U;
[0067] 由于在灰度图像Ig上标记点可能位于图像边缘,因此围绕标记点圆屯、构建的ROI 可能超出图像范围,导致R0I构建失败,为防止R0I超出图像范围,若xc-wl<0,则令wl = xc, 若W-wr-Xc-1 < 0,则令wr = W-Xc-1,若y c_wt < 0,则令W t = y C,若H-wt-y C-1 < 0,则令wt = Η- yc-1 ;
[0068] 步骤10、利用OpenCV提供的斑点检测算法(S imp 1 eB 1 obDe t ec tor)求解标记点圆屯、 坐标精确值;方法为:
[0069] 首先对步骤9得到的R0I进行二值化处理,二值化阔值选用由大津法计算出的阔 值;继而对R0I进行反相处理;再利用化enCV提供的斑点检测算法提取R0I内的闭合轮廓,并 通过如下步骤判断该闭合轮廓是否来自圆环标记点:
[0070] a、判断轮廓偏屯、率E是否满足楠圆或正圆偏屯、率取值范围,若轮廓来自圆环标记 点,则轮廓形状为楠圆或正圆,其偏屯、率范围应为[0,1),轮廓偏屯、率计算公式为:
[0071]
[0072] 令I =λ2/λι,若轮廓为楠圆或圆,贝贿I e (0,1 ],其中:
[0075] 化为图像中屯、矩,仿乃为图像质屯、坐标,R0I(x,y)为R0I坐标系下(x,y)处像素点 的灰度值,R0I坐标系原点为R0I左上角点,X轴水平向右,y轴竖直向下,若有Imin<K Imax, 则该轮廓通过判断,否则排除该轮廓,其中Imin、I"ax为由用户自行设定,本实施方式中设定 Imin 0.1? Imax 1 〇
[0076] b、定义轮廓凸度V = S/Sh,其中S表示轮廓面积,Sh表示轮廓的凸包面积,由定义理 想楠圆或正圆凸度为1,判断轮廓凸度是否接近楠圆或正圆轮廓凸度,即是否有1-ν<ε,其 中ε为用户设定凸度阔值;本实施方式中设定ε=0.2。
[0077] 通过上述偏屯、率判断及凸度判断的轮廓,其质屯、在R0I坐标系下的坐标为(x,y), 而R0I中屯、在原图像中的坐标为(Xc,yc),R0I中屯、与R0I坐标系原点的横向、纵向距离分别为 wl、wt,则检测出的标记点圆屯、在灰度图像Ig坐标系中的坐标(X,Y)为:
[007引 (乂,Π = (.V, + Γ- u7'_v, + 家一、1叫'
[0079 ]实施例1、2如图2、3所示,均取得了较好的识别效果。
[0080] 实例1:如图2(a)所示的原始灰度图像通过Canny边缘检测进行边缘提取后,得到 如图2(b)所示的边缘图像;然而图2(b)所示的边缘图像在个别位置有杂乱的伪边缘,但由 于运些伪边缘在灰度图像上基本位于高光区域,因此利用图2(c)所示的腐蚀后的二值遮罩 图像遮罩处理后伪边缘被基本滤除,得到如图2(d)所示的遮罩后的边缘图像;对图2(d)利 用逐行扫描初步得到的标记点边缘结果如图2(e)所示,可见图2(e)中检出了图中的绝大多 数标记点,W此为基础通过构建R0I进一步利用轮廓质屯、检测法进行检测,得到图2(f)所示 的最终检测结果很好地排除了误检点,同时保留了已经正确检出的标记点。
[0081]实例2:将本发明方法与化enCV所提供的斑点检测算法进行对比。本发明方法在最 后一步轮廓质屯、检测中所用阔值与化en CV所提供的斑点检测算法相同。OpenCV所提供的斑 点检测算法输入数据为二值化后的灰度图像,二值化阔值为60,本发明方法在计算遮罩图 像时所用阔值也为60。如图3(b)所示,OpenCV所提供的斑点检测算法存在较多误检。而本发 明方法由于在使用斑点检测算法前对检测区域及其中的轮廓进行了预选,因此并未出现误 检,如图3(c)所示,且能够检出图中楠圆化程度较高的标记点。
【主权项】
1. 一种非编码圆环形标记点圆心图像坐标检测方法,其特征在于:包括如下步骤: 步骤1:将物体表面处理为白色,并在白色物体表面粘贴多个非编码圆环标记点,所述 圆环形标记点外环颜色为黑色,内圆颜色为白色; 步骤2:获取物体原始图像,并对所述原始图像进行灰度化处理得到灰度图像Ig; 步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im: 步骤4:对遮罩图像Im进行腐蚀处理,得到腐蚀后的遮罩图像1/ ; 步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像 步骤6:利用腐蚀后的遮罩图像1/对边缘图像进行遮罩操作,过滤掉图像中的伪边 缘,得到遮罩后的边缘图像1/ : 步骤7:逐行遍历遮罩后的边缘图像1/,确定图像中的疑似标记点圆心位置及疑似标记 点横向宽度; 假设遮罩后的边缘图像1/宽度为W像素,高度为H像素;采用向量r作为步骤7的结果进 行输出; 步骤7-1:判断1/第i e [〇,H)行是否与标记点边缘相交,若是,则确定出相应交点; 步骤7-1-1:对1/第ie[〇,H)行图像连续取两点j和j+Ι,其中拆[〇,1-1),将像素灰度 值由0跳变至1时的j值按照检出先后顺序存入向量P;所述j值用于反映疑似标记点边缘位 置; 步骤7-1-2:遍历p中的元素:若p中元素个数少于4,则认为1/第i行不与任何标记点的 边缘相交,转至步骤7-1-1直接对下一行进行遍历;否则,从p中依次取出连续的4个元素pk、 Pk+l、Pk+2、Pk+3,其中 k E [ 〇,Sp_4 ),Sp表示P 中元素个数;令dl = Pk+I-Pk,d2 = Pk+2-Pk+l,d3 = Pk+3_ Pk+2,若同时满足:ED < di<EU、MD < d2<MU、ED < d3<EU、di < d2,d3 < d2和 I di-d31 <EU,则认 为I/第i行与疑似标记点k边缘相交,其中?1{^+14 +2^+3为1(/第1行与疑似标记点1^边缘 相交所得的交点;如此,可分别得到1/第i行与相应的若干个疑似标记点边缘相交的交点; 所述EU、ED为遮罩后的边缘图像1/上圆环形标记点外环与内环径向距离的上、下限值;所 述MU、MD为圆环形标记点内圆截径上、下限值; 步骤7-2:利用步骤7-1得到的1/第i行分别与若干个疑似标记点边缘相交所得的交点 依次对向量q进行赋值,即将:1、化1^1<+1)/2、^+2+口1<+3)/2存入向量9,并判断向量1'是否具有 元素,否,则将向量q直接推入向量r,是,则判断向量q所代表的标记点是否已经存在于r中; 若向量q与向量r中的任意元素均不属于同一标记点,则将向量q推入向量r尾部;若向量q与 向量 r中的元素r[n]来自同一标记点,则通过比较r [ n ]与向量q所代表疑似标记点边缘分别 截取第r[n][0]行及第q[0]行扫描线所截得线段长度的大小,确定是否用q替换r[n]; 所述判断向量q所代表的标记点是否已经存在于r中的方法为:针对向量q,遍历向量r; 令dy = q[0]_r[n] [0],dx = q[2]_r[n][2],若同时满足:dy<MU/2及dx<EU/2,则认为向量q 与r[n]来自同一标记点;其中η表示r中元素序号;否则认为向量q与r[n]来自不同标记点; 所述比较r[n]与向量q所代表疑似标记点边缘分别截取第r[n][0]行及第q[0]行扫描 线所截得线段长度大小的方法为:设初始状态下r[n]可更新性为真,令df = r[n][2]-r[n] [l]-(q[2]_q[l]):若df<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长度大 于r[n][0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更接近 疑似标记点圆心,此时若r[n]可更新性为真,则用q替代r[n];若df 2 0,说明继续遍历图像 将不能使q更靠近疑似标记点圆心,将r[n]的可更新性设为假; 步骤7-3:按照步骤7-1至步骤7-2对遮罩后的边缘图像1/第i行的遍历方法,完成遮罩 后的边缘图像1/的逐行遍历,可通过r中元素确定出图像中的疑似标记点圆心位置及疑似 标记点横向宽度; 步骤8、利用步骤7得出的疑似标记点圆心信息,从1/上疑似圆心处起始,纵向遍历寻找 标记点边缘,确定疑似标记点纵向范围; 步骤9:围绕疑似标记点圆心,并根据疑似标记点横向及纵向范围,在灰度图像Ig上构建 矩形感兴趣区域ROI; 遍历步骤8得到的向量r,若r [η]中元素个数不为5,则跳过,否则ROI中心(xc, yc)在Ig上 的坐标为(&[11][1]计[11][2])/2^[11][0]),如1中心点距区域左、右、上、下边缘距离分别 为:wl = xc-r[n] [ I ]+EU、wr = r[n] [2]_xc+EU、wt = r[n] [3]+EU和wb = r[n] [4]+EU;且若Xc-wl <0,则令wl = Xe;若W-wr-Xc-l <0,则令wr=W-Xc-I;若yc-wt<0,则令wt = yc;若H_wt-yc-1<0,则令wt = H-yc_l; 步骤10、利用OpenCV提供的斑点检测算法求解标记点圆心坐标精确值;方法为: 首先对步骤9得到的ROI进行二值化处理,继而对ROI进行反相处理;再利用OpenCV提供 的斑点检测算法提取ROI内的闭合轮廓,并判断所述闭合轮廓是否来自圆环标记点,若是, 则其质心在ROI坐标系下的坐标为(U r),而ROI中心在原图像中的坐标为(X。,yc ),ROI中心 与ROI坐标系原点的横向、纵向距离分别为wI、wt,则检测出的标记点圆心在灰度图像Ig坐 标系中的坐标(X,Y)为: (X, Υ) = (xc + X - wt, γ£ + y~ wt) ?2. 根据权利要求1所述的非编码圆环形标记点圆心图像坐标检测方法,其特征在于:所 述步骤8所述的确定疑似标记点纵向范围的具体方法为:遍历向量r,从边缘图像1/上疑似 标记点圆心点即坐标为(&[11][1]+411][2])/2^[11][0])处对1 (/第&[11][1]+411][2])/2 列分别竖直向上及向下遍历;令yu为向上遍历到达标记点边缘所需步数,yd为向下遍历到 达标记点边缘所需步数;若有yd+yu > MU,说明r [ η ]所代表的疑似标记点圆心点到同列上下 边缘点的距离超出了合理范围,该疑似点应排除,否则将yd、yu作为该疑似标记点的纵向范 围依次推入r [η]。3. 根据权利要求1或2所述的非编码圆环形标记点圆心图像坐标检测方法,其特征在 于:所述步骤10中所述判断所述闭合轮廓是否来自圆环标记点的方法为:若所述闭合轮廓 同时满足a、b两个条件,则可判断所述闭合轮廓来自圆环标记点; a、 轮廓偏心率E满足椭圆或正圆偏心率取值范围[0,1); b、 轮廓凸度V = S/Sh,满足I_V< ε ;其中S表示轮廓面积,Sh表示轮廓的凸包面积,ε为预 设的轮廓凸度阈值。
【专利摘要】一种非编码圆环形标记点圆心图像坐标检测方法,属于图像处理与模式识别领域。通过Canny边缘检测获得图像上可能代表标记点的边缘,并通过腐蚀后的全局二值化图像建立对边缘图像的遮罩,过滤掉图像中的伪边缘;利用逐行扫描的方式初步获得标记点圆心坐标及其横、纵向范围;在灰度图像Ig上构建感兴趣区域ROI,并在ROI中确定标记点质心,最终获得所求标记点圆心在原图像上的坐标。本发明将标记点检测范围缩小至ROI,ROI范围内的伪边缘及灰度变化得到限制,故不易受光照不均的影响。同时由于对腐蚀后边缘图像中的边缘进行预选,使所构建ROI很可能包含标记点,因此可以放宽几何准则、形状准则的判定阈值,故可以克服标记点图像椭圆化影响。
【IPC分类】G06K9/32
【公开号】CN105488503
【申请号】CN201510852639
【发明人】颜云辉, 董志鹏, 宋克臣, 牛孟辉, 何彧
【申请人】东北大学
【公开日】2016年4月13日
【申请日】2015年11月27日

最新回复(0)