CN105488503A - 一种非编码圆环形标记点圆心图像坐标检测方法 - Google Patents
一种非编码圆环形标记点圆心图像坐标检测方法 Download PDFInfo
- Publication number
- CN105488503A CN105488503A CN201510852639.7A CN201510852639A CN105488503A CN 105488503 A CN105488503 A CN 105488503A CN 201510852639 A CN201510852639 A CN 201510852639A CN 105488503 A CN105488503 A CN 105488503A
- Authority
- CN
- China
- Prior art keywords
- gauge point
- image
- point
- doubtful
- edge
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
- G06V10/421—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation by analysing segments intersecting the pattern
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
一种非编码圆环形标记点圆心图像坐标检测方法,属于图像处理与模式识别领域。通过Canny边缘检测获得图像上可能代表标记点的边缘,并通过腐蚀后的全局二值化图像建立对边缘图像的遮罩,过滤掉图像中的伪边缘;利用逐行扫描的方式初步获得标记点圆心坐标及其横、纵向范围;在灰度图像Ig上构建感兴趣区域ROI,并在ROI中确定标记点质心,最终获得所求标记点圆心在原图像上的坐标。本发明将标记点检测范围缩小至ROI,ROI范围内的伪边缘及灰度变化得到限制,故不易受光照不均的影响。同时由于对腐蚀后边缘图像中的边缘进行预选,使所构建ROI很可能包含标记点,因此可以放宽几何准则、形状准则的判定阈值,故可以克服标记点图像椭圆化影响。
Description
技术领域
本发明属于图像处理与模式识别领域,具体公开了一种非编码圆环形标记点圆心图像坐标检测方法。
背景技术
基于立体视觉原理的三维重建技术是一项应用立体视觉原理获得物体三维形貌信息的技术,其通过拍摄被测物体图像,根据相机标定参数及立体视觉图像特征点的匹配关系,利用三角测量原理求解物体被摄面上点的空间三维坐标,生成三维点云,进而重建出物体三维形貌。由于相机视场有限,仅能覆盖物体的部分表面,同时不可避免会有一些表面落入阴影而无法重建,因此单次拍摄只能获得物体局部的三维信息。而在大多数三维重建应用场合下,为完整重建物体表面,需要对物体从不同角度进行多次拍摄,并将重建得到的局部点云利用点云拼接方法拼接至同一坐标系。
在现有的点云拼接方法中,基于标记点的方法是其中精度较高、柔性较好的一种方法。该方法将一定数量印有明显特征图案的标记点贴纸粘附于物体表面,并通过对标记点的检测求解所摄表面在空间中的位置及姿态。其关键步骤之一是从相机拍摄到的物体表面标记点图像上检测出标记点并确定其在图像上的坐标。标记点检测方法的鲁棒性、检测效率及检测速度直接关系到点云拼接整体性能乃至能否正确拼接。
非编码标记点是基于标记点的点云拼接方法中常用的一种标记点,有别于编码标记点,其本身并不提供身份识别编码信息,但其制作及使用比较简便,尤其适用于较小尺寸物体的三维重建点云拼接。非编码标记点图案有多种模式,其中,一种由黑色外环和中央白色内圆两部分组成,几何特征为圆形的非编码标记点比较常用,本发明方法即针对该种标志点进行检测。对该种非编码圆环标记点的检测可纳入图像处理领域椭圆识别范畴,然而,对其直接应用现有椭圆识别算法识别效果较差,原因是三维重建技术一般被应用于复杂面型的重建,物体表面曲率变化大,导致物体表面易出现光照不均的情况,该情况一方面会造成伪边缘,干扰标记点边缘提取;另一方面会导致使用固定阈值对图像进行二值化处理时,较多标记点由于处于曲面阴影处而被二值化处理过滤掉。同时,复杂面型可能导致标记点平面法向相对相机光轴角度变化幅度大,使部分圆环图像呈椭圆形,且长径比不一致,用单一长径比阈值区分椭圆易导致大量标记点被漏检。因此利用现有方法检测非编码圆环形标记点在识别鲁棒性及效率上不够理想。针对该问题,有必要根据非编码圆环形标记点的几何特征,开发一种对其圆心图像坐标进行识别的兼具检测精度及效率的检测方法。
发明内容
针对现有技术存在的不足,本发明提出一种非编码圆环形标记点圆心图像坐标检测方法,以实现利用其为后续点云拼接过程提供精确的标记点圆心坐标的目的。
本发明的技术方案:
一种非编码圆环形标记点圆心图像坐标检测方法,包括如下步骤:
步骤1:将物体表面处理为白色,并在白色物体表面粘贴多个非编码圆环标记点,所述圆环形标记点外环颜色为黑色,内圆颜色为白色;
步骤2:获取物体原始图像,并对所述原始图像进行灰度化处理得到灰度图像Ig;
步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im:
步骤4:对遮罩图像Im进行腐蚀处理,得到腐蚀后的遮罩图像Im′;
步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像Ie;
步骤6:利用腐蚀后的遮罩图像Im′对边缘图像Ie进行遮罩操作,过滤掉图像Ie中的伪边缘,得到遮罩后的边缘图像Ie′:
步骤7:逐行遍历遮罩后的边缘图像Ie′,确定图像中的标记点圆心位置及标记点横向宽度;
假设遮罩后的边缘图像Ie′宽度为W像素,高度为H像素;采用向量r作为步骤7的结果进行输出;
步骤7-1:判断Ie′第i∈[0,H)行是否与标记点边缘相交,若是,则确定出相应交点;方法为:
步骤7-1-1:对Ie′第i∈[0,H)行图像连续取两点j和j+1,其中j∈[0,W-1),将像素灰度值由0跳变至1时的j值按照检出先后顺序存入向量p;所述j值用于反映疑似标记点边缘位置;
步骤7-1-2:遍历p中的元素:若p中元素个数少于4,则认为Ie′第i行不与任何标记点的边缘相交,转至步骤7-1-1直接对下一行进行遍历;否则,从p中依次取出连续的4个元素pk、pk+1、pk+2、pk+3,其中k∈[0,sp-4),sp表示p中元素个数;令d1=pk+1-pk,d2=pk+2-pk+1,d3=pk+3-pk+2,若同时满足:ED≤d1<EU、MD≤d2<MU、ED≤d3<EU、d1≤d2,d3≤d2和|d1-d3|<EU,则认为Ie′第i行与疑似标记点k边缘相交,其中pk、pk+1、pk+2、pk+3为Ie′第i行与疑似标记点k边缘相交所得的交点;如此,可分别得到Ie′第i行与相应的若干个疑似标记点边缘相交的交点;所述EU、ED为遮罩后的边缘图像Ie′上圆环形标记点外环与内环径向距离的上、下限值;所述MU、MD为圆环形标记点内圆截径上、下限值;
步骤7-2:利用步骤7-1得到的Ie′第i行分别与若干个疑似标记点边缘相交所得的交点依次对向量q进行赋值,即将i、(pk+pk+1)/2、(pk+2+pk+3)/2存入向量q,并判断向量r是否具有元素,否,则将向量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]来自同一标记点;其中n表示r中元素序号;否则认为向量q与r[n]来自不同标记点;
所述比较r[n]与向量q所代表疑似标记点边缘分别截取第r[n][0]行及第q[0]行扫描线所截得线段长度大小的方法为:设初始状态下r[n]可更新性为真,令df=r[n][2]-r[n][1]-(q[2]-q[1]):若df<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长度大于r[n][0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更接近疑似标记点圆心,此时若r[n]可更新性为真,则用q替代r[n];若df≥0,说明继续遍历图像将不能使q更靠近疑似标记点圆心,将r[n]的可更新性设为假;
步骤7-3:按照步骤7-1至步骤7-2对遮罩后的边缘图像Ie′第i行的遍历方法,完成遮罩后的边缘图像Ie′的逐行遍历,由此可通过r中元素确定出图像中的疑似标记点圆心位置及疑似标记点横向宽度;
步骤8、利用步骤7得出的疑似标记点圆心信息,从Ie′上疑似圆心处起始,纵向遍历寻找标记点边缘,确定疑似标记点纵向范围;具体方法为:
遍历向量r,从边缘图像Ie′上疑似标记点圆心点即坐标为((r[n][1]+r[n][2])/2,r[n][0])处对Ie′第(r[n][1]+r[n][2])/2列分别竖直向上及向下遍历;令yu为向上遍历到达标记点边缘所需步数,yd为向下遍历到达标记点边缘所需步数;若有yd+yu>MU,说明r[n]所代表的疑似标记点圆心点到同列上下边缘点的距离超出了合理范围,该疑似点应排除,否则将yd、yu作为该疑似标记点的纵向范围依次推入r[n];
步骤9:围绕疑似标记点圆心,并根据疑似标记点横向及纵向范围,在灰度图像Ig上构建矩形感兴趣区域ROI;
遍历步骤8得到的向量r,若r[n]中元素个数不为5,则跳过,否则ROI中心(xc,yc)在Ig上的坐标为((r[n][1]+r[n][2])/2,r[n][0]),ROI中心点距区域左、右、上、下边缘距离分别为:wl=xc-r[n][1]+EU、wr=r[n][2]-xc+EU、wt=r[n][3]+EU和wb=r[n][4]+EU;且若xc-wl<0,则令wl=xc;若W-wr-xc-1<0,则令wr=W-xc-1;若yc-wt<0,则令wt=yc;若H-wt-yc-1<0,则令wt=H-yc-1;
步骤10、利用OpenCV提供的斑点检测算法求解标记点圆心坐标精确值;方法为:
首先对步骤9得到的ROI进行二值化处理,继而对ROI进行反相处理;再利用OpenCV提供的斑点检测算法提取ROI内的闭合轮廓,并通过如下步骤判断所述闭合轮廓是否来自圆环标记点:
a、判断轮廓偏心率E是否满足椭圆或正圆偏心率取值范围[0,1);
b、定义轮廓凸度V=S/Sh,判断轮廓凸度是否接近椭圆或正圆轮廓凸度,即是否有1-V<ε;其中S表示轮廓面积,Sh表示轮廓的凸包面积,ε为预设的轮廓凸度阈值;
通过上述偏心率判断及凸度判断的轮廓,其质心在ROI坐标系下的坐标为(x,y),而ROI中心在原图像中的坐标为(xc,yc),ROI中心与ROI坐标系原点的横向、纵向距离分别为wl、wt,则检测出的标记点圆心在灰度图像Ig坐标系中的坐标(X,Y)为:
综上所述,本发明的技术方案可以概括为:首先通过Canny边缘检测获得图像上可能代表标记点的边缘,并通过腐蚀后的全局二值化图像建立对边缘图像的遮罩,过滤掉图像中的伪边缘。在获得边缘图像后,利用逐行扫描的方式结合对标记点图像尺度的预估值(MD、MU、ED、EU)判断所检出边缘是否来自标记点,并初步获得标记点圆心坐标及其横、纵向范围。最后,利用初步获得的圆心坐标及标记点在腐蚀后的边缘图像上的范围信息,在灰度图像Ig上构建感兴趣区域ROI,并在ROI中利用OpenCV提供的斑点检测算法确定标记点质心,最终获得所求标记点圆心在原图像上的坐标。
本发明有益效果:本发明方法结合非编码圆环形标记点的几何特征对其进行识别,相比于现有非编码标记点识别方法及一般的椭圆识别方法,具有显著优点:
1、利用Canny算子提取图像边缘,但并未直接通过设定阈值的方式从中过滤、提取标记点轮廓,而是将其作为后续行扫描确定标记点边缘的初始数据,从而避免了阈值选取不当造成标记点漏检或误检;
2、对原始图像的灰度图像进行了全局二值化,但并未直接采用该二值图像进行轮廓提取及椭圆拟合,为避免全局阈值选择对检测效果的影响,本发明将其腐蚀后作为遮罩,过滤掉边缘图像中的大部分伪边缘,这一操作降低了边缘图像内的伪边缘数量,使后续行扫描检测标记点边缘计算量减小,同时使Canny算子对边缘强度阈值的要求可以适当降低,从而有利于完整地检出标记点边缘;
3、利用逐行扫描大致确定标记点图像位置,并在这些位置构建感兴趣区域ROI,ROI面积根据步骤7得到的标记点宽度、步骤8得到的标记点高度信息动态确定。
综上所述,本发明根据对标记点范围的初步判断将标记点检测范围缩小至ROI,ROI范围内的伪边缘及灰度变化得到限制,故不易受光照不均的影响。同时由于步骤7、步骤8对腐蚀后边缘图像中的边缘进行了预选,使所构建ROI很可能包含标记点,因此可以放宽几何准则、形状准则的判定阈值,故可以克服标记点图像椭圆化影响。
附图说明
图1为本发明一种实施方式的非编码圆环形标记点圆心图像坐标检测方法流程图;
图2(a)为本发明一种实施方式的原始灰度图像示意图;(b)为(a)的边缘图像示意图;(c)为腐蚀后的遮罩图像示意图;(d)为(b)经过(c)遮罩后得到的边缘图像示意图;(e)为(a)的初步标记点检测结果示意图;(f)为(a)的最终标记点检测结果示意图;
图3(a)为本发明一种实施方式的原始灰度图像示意图;(b)为对(a)采用全局阈值二值化后利用OpenCV提供的斑点检测算法的标记点检测结果示意图;(c)为对(a)采用本发明的非编码圆环形标记点圆心图像坐标检测方法的标记点检测结果示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作详细说明。
本实施方式的非编码圆环形标记点圆心图像坐标检测方法,如图1所示,包括如下步骤:
步骤1:通过喷涂白色显影剂等方式将物体表面处理为白色,并在白色物体表面粘贴多个非编码圆环标记点;所述圆环形标记点外环直径为5mm、颜色为黑色;所述圆环形标记点内圆直径为3mm、颜色为白色;
步骤2:通过相机拍摄的方法获取物体原始图像,并对原始图像进行灰度化处理得到8位单通道灰度图像Ig;本实施方式中在拍摄时相机距物体约400mm;
步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im:其中二值化阈值由用户根据图像明暗情况自行设定。本实施方式中的二值化阈值设定为60,
式中b=60为二值化阈值;(x,y)表示像素点在原始图像坐标系下的坐标,其中原始图像坐标系原点为图像左上角点,x轴沿图像宽度方向水平向右,y轴沿图像高度方向竖直向下;本实施方式中以I(x,y)表示(x,y)点在图像I上的灰度值,同理,Im(x,y)表示(x,y)点在遮罩图像Im上的灰度值,Ig(x,y)表示(x,y)点在灰度图像Ig上的灰度值。
步骤4:利用OpenCV提供的腐蚀图像处理方法(erode)对遮罩图像Im进行腐蚀,得到腐蚀后的遮罩图像Im′,其中腐蚀核为7×7像素矩形;
步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像Ie;本实施方式中将低阈值(lowthreshold)设为1,高阈值(highthreshold)设为200;
步骤6:利用腐蚀后的遮罩图像Im′对边缘图像Ie进行遮罩操作,过滤掉图像Ie中的伪边缘,得到遮罩后的边缘图像Ie′;遮罩后的边缘图像Ie′在检出的边缘处像素值为1,其余像素值为0:
其中Ie′(x,y)表示(x,y)点在遮罩后的边缘图像Ie′上的灰度值;Ie(x,y)表示(x,y)点在边缘图像Ie上的灰度值;Im′(x,y)表示(x,y)点在腐蚀后的遮罩图像Im′上的灰度值;
步骤7:逐行遍历遮罩后的边缘图像Ie′,确定图像中的标记点圆心位置及标记点横向宽度;
假设遮罩后的边缘图像Ie′宽度为W像素,高度为H像素;采用向量r作为步骤7的结果进行输出;
步骤7-1:判断Ie′第i∈[0,H)行是否与标记点边缘相交,若是,则确定出相应交点;方法为:
步骤7-1-1:对Ie′第i∈[0,H)行图像连续取两点j和j+1,其中j∈[0,W-1),记录像素灰度值由0跳变至1时的j值,j值反映了疑似标记点边缘位置,将得到的j值按照检出先后顺序存入向量p;
步骤7-1-2:遍历p中的元素,由于标记点在遮罩后的边缘图像Ie′上表现为线宽为1像素的同心椭圆环,因此行扫描线在靠近椭圆中心的位置穿过标记点必与标记点边缘相交4次,即发生4次跳变;若p中元素个数少于4,则认为Ie′第i行不与任何标记点的边缘相交,转至步骤7-1-1直接对下一行进行遍历;否则,从p中依次取出连续的4个元素pk、pk+1、pk+2、pk+3,其中k∈[0,sp-4),sp表示p中元素个数;令d1=pk+1-pk,d2=pk+2-pk+1,d3=pk+3-pk+2,若同时满足:ED≤d1<EU、MD≤d2<MU、ED≤d3<EU、d1≤d2,d3≤d2和|d1-d3|<EU,则认为Ie′第i行与疑似标记点k边缘相交,其中pk、pk+1、pk+2、pk+3为Ie′第i行与疑似标记点k边缘相交所得的交点;如此,可分别得到Ie′第i行与相应的若干个疑似标记点边缘相交的交点;所述EU、ED为遮罩后的边缘图像Ie′上圆环形标记点外环与内环径向距离的上、下限值;所述MU、MD为圆环形标记点内圆截径上、下限值;所述EU、ED、MU和MD事先根据圆环形标记点在原始图像上的大小给定,单位均为像素;本实施方式中给定EU=15、ED=1、MU=50及MD=2。
步骤7-2:利用步骤7-1得到的Ie′第i行分别与若干个疑似标记点边缘相交所得的交点依次对向量q进行赋值,即将i、(pk+pk+1)/2、(pk+2+pk+3)/2存入向量q,并判断向量r是否具有元素,否,则将向量q直接推入向量r,是,则判断向量q所代表的标记点是否已经存在于r中;其中q中元素i即q[0]表示扫描行序号,(pk+pk+1)/2即q[1]表示第i行扫描线与疑似标记点k左侧边缘两个交点的横坐标平均值,(pk+2+pk+3)/2即q[2]表示第i行扫描线与疑似标记点k右侧两个交点的横坐标平均值,由此可近似认为疑似标记点k边缘截取扫描线所得截线段中点横坐标为(pk+pk+1+pk+2+pk+3)/4,即(q[1]+q[2])/2,疑似标记点k边缘截取扫描线所得截线段长度为(pk+2+pk+3)/2-(pk+pk+1)/2,即q[2]-q[1];
所述判断向量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]来自同一标记点;其中n表示r中元素序号;否则认为向量q与r[n]来自不同标记点,若向量q与向量r中的任意元素均不属于同一标记点,则将向量q推入向量r尾部;
若向量q与r[n]来自同一标记点,则比较r[n]与向量q所代表疑似标记点边缘分别截取第r[n][0]行及第q[0]行扫描线所截得线段长度,由椭圆几何性质可知,疑似标记点圆心所在行扫描线被标记点边缘所截得的水平截线段在该标记点所有水平截线段中长度取得极大值,因此当截线段长度取得极大值时可以认为该截线段所在行最为接近疑似标记点圆心所在行;比较方法为:设初始状态下r[n]可更新性为真,令df=r[n][2]-r[n][1]-(q[2]-q[1]):若df<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长度大于r[n][0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更接近疑似标记点圆心,此时若r[n]可更新性为真,则用q替代r[n];若df≥0,说明继续遍历图像将不能使q更靠近疑似标记点圆心,为防止误匹配,将r[n]的可更新性设为假,由此可以保证完成对图像Ie′的遍历后r[n][0]最为接近r[n]所代表的标记点圆心在图像Ie′上的纵坐标,r[n][2]-r[n][1]最为接近r[n]所代表标记点在图像Ie′上的横向宽度;
步骤7-3:按照步骤7-1至步骤7-2的方法,完成遮罩后的边缘图像Ie′的逐行遍历,确定出图像中的标记点圆心位置及标记点横向宽度;
步骤8、利用步骤7得出的疑似标记点圆心信息,从Ie′上疑似圆心处起始,纵向遍历寻找标记点边缘,确定疑似标记点纵向范围;具体方法为:
遍历向量r,从边缘图像Ie′上疑似标记点圆心点坐标为((r[n][1]+r[n][2])/2,r[n][0])处对Ie′第(r[n][1]+r[n][2])/2列分别竖直向上及向下遍历,由于在遮罩后的边缘图像Ie′上标记点表现为同心闭合椭圆,则理论上若该疑似圆心点确为标记点圆心,则从该疑似圆心点出发,向上及向下遍历必经过有限步长抵达标记点边缘;令yu为向上遍历到达标记点边缘所需步数,yd为向下遍历到达标记点边缘所需步数;若有yd+yu>MU,说明r[n]所代表的疑似标记点中心点到同列上下边缘点的距离超出了允许范围,则排除该疑似点,否则将yd、yu作为该疑似标记点的纵向范围依次推入r[n];
步骤9:围绕疑似标记点圆心,并根据疑似标记点横向即纵向范围,在灰度图像Ig上构建矩形感兴趣区域ROI;
遍历步骤8得到的向量r,由于r在步骤7-2中被存入q,q中包含3个元素,而在步骤8中通过该步判断条件的r[n]又被存入yd、yu两个元素,因此通过步骤8判断的r[n]中应有5个元素,若r[n]中元素个数不为5,则跳过,否则由步骤7及步骤8所给出的r[n]中元素的含义,ROI中心(xc,yc)在Ig上的坐标为((r[n][1]+r[n][2])/2,r[n][0]),ROI中心点距区域左、右、上、下边缘距离分别为:wl=xc-r[n][1]+EU、wr=r[n][2]-xc+EU、wt=r[n][3]+EU和wb=r[n][4]+EU;
由于在灰度图像Ig上标记点可能位于图像边缘,因此围绕标记点圆心构建的ROI可能超出图像范围,导致ROI构建失败,为防止ROI超出图像范围,若xc-wl<0,则令wl=xc,若W-wr-xc-1<0,则令wr=W-xc-1,若yc-wt<0,则令wt=yc,若H-wt-yc-1<0,则令wt=H-yc-1;
步骤10、利用OpenCV提供的斑点检测算法(SimpleBlobDetector)求解标记点圆心坐标精确值;方法为:
首先对步骤9得到的ROI进行二值化处理,二值化阈值选用由大津法计算出的阈值;继而对ROI进行反相处理;再利用OpenCV提供的斑点检测算法提取ROI内的闭合轮廓,并通过如下步骤判断该闭合轮廓是否来自圆环标记点:
a、判断轮廓偏心率E是否满足椭圆或正圆偏心率取值范围,若轮廓来自圆环标记点,则轮廓形状为椭圆或正圆,其偏心率范围应为[0,1),轮廓偏心率计算公式为:
令I=λ2/λ1,若轮廓为椭圆或圆,则有I∈(0,1],其中:
μ′20=μ20/μ00,μ′02=μ02/μ00,μ′11=μ11/μ00;
μji为图像中心矩,为图像质心坐标,ROI(x,y)为ROI坐标系下(x,y)处像素点的灰度值,ROI坐标系原点为ROI左上角点,x轴水平向右,y轴竖直向下,若有Imin<I≤Imax,则该轮廓通过判断,否则排除该轮廓,其中Imin、Imax为由用户自行设定,本实施方式中设定Imin=0.1,Imax=1。
b、定义轮廓凸度V=S/Sh,其中S表示轮廓面积,Sh表示轮廓的凸包面积,由定义理想椭圆或正圆凸度为1,判断轮廓凸度是否接近椭圆或正圆轮廓凸度,即是否有1-V<ε,其中ε为用户设定凸度阈值;本实施方式中设定ε=0.2。
通过上述偏心率判断及凸度判断的轮廓,其质心在ROI坐标系下的坐标为(x,y),而ROI中心在原图像中的坐标为(xc,yc),ROI中心与ROI坐标系原点的横向、纵向距离分别为wl、wt,则检测出的标记点圆心在灰度图像Ig坐标系中的坐标(X,Y)为:
实施例1、2如图2、3所示,均取得了较好的识别效果。
实例1:如图2(a)所示的原始灰度图像通过Canny边缘检测进行边缘提取后,得到如图2(b)所示的边缘图像;然而图2(b)所示的边缘图像在个别位置有杂乱的伪边缘,但由于这些伪边缘在灰度图像上基本位于高光区域,因此利用图2(c)所示的腐蚀后的二值遮罩图像遮罩处理后伪边缘被基本滤除,得到如图2(d)所示的遮罩后的边缘图像;对图2(d)利用逐行扫描初步得到的标记点边缘结果如图2(e)所示,可见图2(e)中检出了图中的绝大多数标记点,以此为基础通过构建ROI进一步利用轮廓质心检测法进行检测,得到图2(f)所示的最终检测结果很好地排除了误检点,同时保留了已经正确检出的标记点。
实例2:将本发明方法与OpenCV所提供的斑点检测算法进行对比。本发明方法在最后一步轮廓质心检测中所用阈值与OpenCV所提供的斑点检测算法相同。OpenCV所提供的斑点检测算法输入数据为二值化后的灰度图像,二值化阈值为60,本发明方法在计算遮罩图像时所用阈值也为60。如图3(b)所示,OpenCV所提供的斑点检测算法存在较多误检。而本发明方法由于在使用斑点检测算法前对检测区域及其中的轮廓进行了预选,因此并未出现误检,如图3(c)所示,且能够检出图中椭圆化程度较高的标记点。
Claims (3)
1.一种非编码圆环形标记点圆心图像坐标检测方法,其特征在于:包括如下步骤:
步骤1:将物体表面处理为白色,并在白色物体表面粘贴多个非编码圆环标记点,所述圆环形标记点外环颜色为黑色,内圆颜色为白色;
步骤2:获取物体原始图像,并对所述原始图像进行灰度化处理得到灰度图像Ig;
步骤3:拷贝灰度图像Ig,对拷贝图像进行二值化处理,得到遮罩图像Im:
步骤4:对遮罩图像Im进行腐蚀处理,得到腐蚀后的遮罩图像Im′;
步骤5:采用Canny算子对灰度图像Ig进行边缘提取,得到边缘图像Ie;
步骤6:利用腐蚀后的遮罩图像Im′对边缘图像Ie进行遮罩操作,过滤掉图像Ie中的伪边缘,得到遮罩后的边缘图像Ie′:
步骤7:逐行遍历遮罩后的边缘图像Ie′,确定图像中的疑似标记点圆心位置及疑似标记点横向宽度;
假设遮罩后的边缘图像Ie′宽度为W像素,高度为H像素;采用向量r作为步骤7的结果进行输出;
步骤7-1:判断Ie′第i∈[0,H)行是否与标记点边缘相交,若是,则确定出相应交点;
步骤7-1-1:对Ie′第i∈[0,H)行图像连续取两点j和j+1,其中j∈[0,W-1),将像素灰度值由0跳变至1时的j值按照检出先后顺序存入向量p;所述j值用于反映疑似标记点边缘位置;
步骤7-1-2:遍历p中的元素:若p中元素个数少于4,则认为Ie′第i行不与任何标记点的边缘相交,转至步骤7-1-1直接对下一行进行遍历;否则,从p中依次取出连续的4个元素pk、pk+1、pk+2、pk+3,其中k∈[0,sp-4),sp表示p中元素个数;令d1=pk+1-pk,d2=pk+2-pk+1,d3=pk+3-pk+2,若同时满足:ED≤d1<EU、MD≤d2<MU、ED≤d3<EU、d1≤d2,d3≤d2和|d1-d3|<EU,则认为Ie′第i行与疑似标记点k边缘相交,其中pk、pk+1、pk+2、pk+3为Ie′第i行与疑似标记点k边缘相交所得的交点;如此,可分别得到Ie′第i行与相应的若干个疑似标记点边缘相交的交点;所述EU、ED为遮罩后的边缘图像Ie′上圆环形标记点外环与内环径向距离的上、下限值;所述MU、MD为圆环形标记点内圆截径上、下限值;
步骤7-2:利用步骤7-1得到的Ie′第i行分别与若干个疑似标记点边缘相交所得的交点依次对向量q进行赋值,即将i、(pk+pk+1)/2、(pk+2+pk+3)/2存入向量q,并判断向量r是否具有元素,否,则将向量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]来自同一标记点;其中n表示r中元素序号;否则认为向量q与r[n]来自不同标记点;
所述比较r[n]与向量q所代表疑似标记点边缘分别截取第r[n][0]行及第q[0]行扫描线所截得线段长度大小的方法为:设初始状态下r[n]可更新性为真,令df=r[n][2]-r[n][1]-(q[2]-q[1]):若df<0,则q[0]行扫描线被q所代表疑似标记点边缘截得的线段长度大于r[n][0]行扫描线被r[n]所代表的疑似标记点边缘截得的线段长度,说明q[0]行更接近疑似标记点圆心,此时若r[n]可更新性为真,则用q替代r[n];若df≥0,说明继续遍历图像将不能使q更靠近疑似标记点圆心,将r[n]的可更新性设为假;
步骤7-3:按照步骤7-1至步骤7-2对遮罩后的边缘图像Ie′第i行的遍历方法,完成遮罩后的边缘图像Ie′的逐行遍历,可通过r中元素确定出图像中的疑似标记点圆心位置及疑似标记点横向宽度;
步骤8、利用步骤7得出的疑似标记点圆心信息,从Ie′上疑似圆心处起始,纵向遍历寻找标记点边缘,确定疑似标记点纵向范围;
步骤9:围绕疑似标记点圆心,并根据疑似标记点横向及纵向范围,在灰度图像Ig上构建矩形感兴趣区域ROI;
遍历步骤8得到的向量r,若r[n]中元素个数不为5,则跳过,否则ROI中心(xc,yc)在Ig上的坐标为((r[n][1]+r[n][2])/2,r[n][0]),ROI中心点距区域左、右、上、下边缘距离分别为:wl=xc-r[n][1]+EU、wr=r[n][2]-xc+EU、wt=r[n][3]+EU和wb=r[n][4]+EU;且若xc-wl<0,则令wl=xc;若W-wr-xc-1<0,则令wr=W-xc-1;若yc-wt<0,则令wt=yc;若H-wt-yc-1<0,则令wt=H-yc-1;
步骤10、利用OpenCV提供的斑点检测算法求解标记点圆心坐标精确值;方法为:
首先对步骤9得到的ROI进行二值化处理,继而对ROI进行反相处理;再利用OpenCV提供的斑点检测算法提取ROI内的闭合轮廓,并判断所述闭合轮廓是否来自圆环标记点,若是,则其质心在ROI坐标系下的坐标为而ROI中心在原图像中的坐标为(xc,yc),ROI中心与ROI坐标系原点的横向、纵向距离分别为wl、wt,则检测出的标记点圆心在灰度图像Ig坐标系中的坐标(X,Y)为:
2.根据权利要求1所述的非编码圆环形标记点圆心图像坐标检测方法,其特征在于:所述步骤8所述的确定疑似标记点纵向范围的具体方法为:遍历向量r,从边缘图像Ie′上疑似标记点圆心点即坐标为((r[n][1]+r[n][2])/2,r[n][0])处对Ie′第(r[n][1]+r[n][2])/2列分别竖直向上及向下遍历;令yu为向上遍历到达标记点边缘所需步数,yd为向下遍历到达标记点边缘所需步数;若有yd+yu>MU,说明r[n]所代表的疑似标记点圆心点到同列上下边缘点的距离超出了合理范围,该疑似点应排除,否则将yd、yu作为该疑似标记点的纵向范围依次推入r[n]。
3.根据权利要求1或2所述的非编码圆环形标记点圆心图像坐标检测方法,其特征在于:所述步骤10中所述判断所述闭合轮廓是否来自圆环标记点的方法为:若所述闭合轮廓同时满足a、b两个条件,则可判断所述闭合轮廓来自圆环标记点;
a、轮廓偏心率E满足椭圆或正圆偏心率取值范围[0,1);
b、轮廓凸度V=S/Sh,满足1-V<ε;其中S表示轮廓面积,Sh表示轮廓的凸包面积,ε为预设的轮廓凸度阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852639.7A CN105488503B (zh) | 2015-11-27 | 2015-11-27 | 一种非编码圆环形标记点圆心图像坐标检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852639.7A CN105488503B (zh) | 2015-11-27 | 2015-11-27 | 一种非编码圆环形标记点圆心图像坐标检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105488503A true CN105488503A (zh) | 2016-04-13 |
CN105488503B CN105488503B (zh) | 2019-02-05 |
Family
ID=55675475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510852639.7A Active CN105488503B (zh) | 2015-11-27 | 2015-11-27 | 一种非编码圆环形标记点圆心图像坐标检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105488503B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650717A (zh) * | 2016-12-17 | 2017-05-10 | 复旦大学 | 一种带厚度干扰的圆形物体的精确定位方法 |
CN106855949A (zh) * | 2016-11-29 | 2017-06-16 | 广州视源电子科技股份有限公司 | 标记点的识别方法及装置 |
WO2017193372A1 (zh) * | 2016-05-13 | 2017-11-16 | 深圳市赛亿科技开发有限公司 | 一种实现全景图像拼接的方法及系统 |
CN107543496A (zh) * | 2017-03-23 | 2018-01-05 | 四川精视科技有限公司 | 一种基于散斑图像匹配的立体视觉测量人工标记点 |
CN109859186A (zh) * | 2019-01-31 | 2019-06-07 | 江苏理工学院 | 一种基于halcon的锂电池模组正负极检测方法 |
CN110672040A (zh) * | 2019-09-24 | 2020-01-10 | 中国计量科学研究院 | 一种基于视觉的高精度旋转角度测量方法 |
CN110869934A (zh) * | 2017-08-08 | 2020-03-06 | 雀巢产品有限公司 | 具有编码食品或饮料制备操作序列的代码的容器 |
CN111104470A (zh) * | 2019-11-19 | 2020-05-05 | 青岛海信网络科技股份有限公司 | 一种电子沙盘和应急平台联动的方法和系统 |
CN114087989A (zh) * | 2021-11-19 | 2022-02-25 | 江苏理工学院 | 汽车缸体工件定位孔圆心三维坐标测量方法及系统 |
CN114953700A (zh) * | 2021-12-06 | 2022-08-30 | 黄河水利职业技术学院 | 一种用于工业摄影测量的超高精度合作目标的制作方法 |
CN114985908A (zh) * | 2022-07-13 | 2022-09-02 | 中南大学 | 一种微型回转式谐振结构的高精度加工系统和方法 |
CN115131234A (zh) * | 2022-06-15 | 2022-09-30 | 西北大学 | 一种基于两阶段神经网络的数字壁画修复方法 |
CN115656911A (zh) * | 2022-12-27 | 2023-01-31 | 江阴市晶磁电子有限公司 | 供电系统电流互感器检验装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101144708A (zh) * | 2007-09-26 | 2008-03-19 | 东南大学 | 三维扫描系统中圆形标志点的检测方法 |
CN103310215A (zh) * | 2013-07-03 | 2013-09-18 | 天津工业大学 | 一种环状编码标记点的检测与识别方法 |
CN104501735A (zh) * | 2014-12-23 | 2015-04-08 | 大连理工大学 | 一种利用圆形标记点观测边坡三维变形的方法 |
-
2015
- 2015-11-27 CN CN201510852639.7A patent/CN105488503B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101144708A (zh) * | 2007-09-26 | 2008-03-19 | 东南大学 | 三维扫描系统中圆形标志点的检测方法 |
CN103310215A (zh) * | 2013-07-03 | 2013-09-18 | 天津工业大学 | 一种环状编码标记点的检测与识别方法 |
CN104501735A (zh) * | 2014-12-23 | 2015-04-08 | 大连理工大学 | 一种利用圆形标记点观测边坡三维变形的方法 |
Non-Patent Citations (2)
Title |
---|
IHOR SMAL等: ""Quantitative Comparison of Spot Detection"", 《IEEE TRANSACTIONS ON MEDICAL IMAGING》 * |
高宏伟等: ""摄像机标定中光心图像坐标确定方法"", 《光电工程》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193372A1 (zh) * | 2016-05-13 | 2017-11-16 | 深圳市赛亿科技开发有限公司 | 一种实现全景图像拼接的方法及系统 |
CN107852466A (zh) * | 2016-05-13 | 2018-03-27 | 深圳市赛亿科技开发有限公司 | 一种实现全景图像拼接的方法及系统 |
CN106855949A (zh) * | 2016-11-29 | 2017-06-16 | 广州视源电子科技股份有限公司 | 标记点的识别方法及装置 |
CN106650717A (zh) * | 2016-12-17 | 2017-05-10 | 复旦大学 | 一种带厚度干扰的圆形物体的精确定位方法 |
CN107543496B (zh) * | 2017-03-23 | 2019-11-15 | 四川精视科技有限公司 | 一种双目立体视觉三维坐标测量方法 |
CN107543496A (zh) * | 2017-03-23 | 2018-01-05 | 四川精视科技有限公司 | 一种基于散斑图像匹配的立体视觉测量人工标记点 |
CN110869934A (zh) * | 2017-08-08 | 2020-03-06 | 雀巢产品有限公司 | 具有编码食品或饮料制备操作序列的代码的容器 |
US12006134B2 (en) | 2017-08-08 | 2024-06-11 | Societe Des Produits Nestle S.A. | Container with a code encoding a sequence of foodstuff or beverage preparation operations |
CN109859186A (zh) * | 2019-01-31 | 2019-06-07 | 江苏理工学院 | 一种基于halcon的锂电池模组正负极检测方法 |
CN110672040A (zh) * | 2019-09-24 | 2020-01-10 | 中国计量科学研究院 | 一种基于视觉的高精度旋转角度测量方法 |
CN110672040B (zh) * | 2019-09-24 | 2021-07-30 | 中国计量科学研究院 | 一种基于视觉的高精度旋转角度测量方法 |
CN111104470A (zh) * | 2019-11-19 | 2020-05-05 | 青岛海信网络科技股份有限公司 | 一种电子沙盘和应急平台联动的方法和系统 |
CN114087989A (zh) * | 2021-11-19 | 2022-02-25 | 江苏理工学院 | 汽车缸体工件定位孔圆心三维坐标测量方法及系统 |
CN114087989B (zh) * | 2021-11-19 | 2023-09-22 | 江苏理工学院 | 汽车缸体工件定位孔圆心三维坐标测量方法及系统 |
CN114953700A (zh) * | 2021-12-06 | 2022-08-30 | 黄河水利职业技术学院 | 一种用于工业摄影测量的超高精度合作目标的制作方法 |
CN115131234A (zh) * | 2022-06-15 | 2022-09-30 | 西北大学 | 一种基于两阶段神经网络的数字壁画修复方法 |
CN115131234B (zh) * | 2022-06-15 | 2023-09-19 | 西北大学 | 一种基于两阶段神经网络的数字壁画修复方法 |
CN114985908A (zh) * | 2022-07-13 | 2022-09-02 | 中南大学 | 一种微型回转式谐振结构的高精度加工系统和方法 |
CN115656911A (zh) * | 2022-12-27 | 2023-01-31 | 江阴市晶磁电子有限公司 | 供电系统电流互感器检验装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105488503B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105488503A (zh) | 一种非编码圆环形标记点圆心图像坐标检测方法 | |
CN104392212B (zh) | 一种基于视觉的道路信息检测及前方车辆识别方法 | |
CN102654902B (zh) | 基于轮廓向量特征的嵌入式实时图像匹配方法 | |
CN109615653B (zh) | 基于深度学习与视场投影模型的渗漏水面积检测与识别方法 | |
CN103729632B (zh) | 一种基于连通区域滤波的圆形Mark点的定位方法 | |
CN109784344A (zh) | 一种用于地平面标识识别的图像非目标滤除方法 | |
CN106340044B (zh) | 摄像机外参自动标定方法及标定装置 | |
CN107203973B (zh) | 一种三维激光扫描系统中线激光中心的亚像素定位方法 | |
CN107610164B (zh) | 一种基于多特征混合的高分四号影像配准方法 | |
CN105046697B (zh) | 一种基于多次随机圆检测及拟合度评估的啤酒瓶口定位方法 | |
CN105957007A (zh) | 基于特征点平面相似度的图像拼接方法 | |
CN101398886A (zh) | 一种基于双目被动立体视觉的快速三维人脸识别方法 | |
CN101620732A (zh) | 道路行驶线的视觉检测方法 | |
CN104318548A (zh) | 一种基于空间稀疏度和sift特征提取的快速图像配准实现方法 | |
Wang et al. | Lane detection based on random hough transform on region of interesting | |
CN105844655A (zh) | 一种激光线条纹边缘提取方法 | |
CN107392849B (zh) | 基于图像细分的靶标识别与定位方法 | |
CN101144708A (zh) | 三维扫描系统中圆形标志点的检测方法 | |
CN103914827A (zh) | 汽车密封条轮廓缺陷的视觉检测方法 | |
CN103295239A (zh) | 一种基于平面基准影像的激光点云数据的自动配准方法 | |
US10255490B2 (en) | Method and apparatus for human detection in images | |
CN102829735A (zh) | 基于机器视觉的e型磁材背面几何形状缺陷检测方法 | |
CN106056648A (zh) | 一种智能机器人的图像绘制方法及系统 | |
CN106778551A (zh) | 一种高速路段及城市道路车道线识别方法 | |
CN102567733A (zh) | 一种微波图像非合作情况下人体隐私部位检测与遮挡方法 |
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 |