本发明涉及视觉识别技术领域,特别涉及一种基于轮廓识别球型目标物位置的方法。
背景技术:
当前目标识别的方法可以分为三类:基于表象特征的方法、基于形状特征的方法、基于表象和形状特征相结合的方法。基于形状特征的目标识别方法是当前研究的一个热点,近些年来取得了显著的进展。从传统的基于傅里叶变换或不变矩等方法,发展为当前大多属于基于轮廓和骨架两种形状描述子的形状匹配方法。相对于点集,轮廓具有更加丰富的信息,且轮廓不容易受到光照、物体颜色和纹理变化的影响,但是在实际运用过程中,存在大量的噪点,影响轮廓的识别准确性。
技术实现要素:
本发明的目的在于:克服现有技术中在实际运用过程中,存在大量的噪点,影响轮廓的识别准确性的问题。
为了实现上述发明目的,本发明提供一种基于轮廓识别球型目标物位置的方法,其特征在于,包括以下步骤,
步骤一:获取目标区域的原始图像后,根据所述原始图像中背景的灰度值,标记目标图像区域;
步骤二:根据目标图像区域中各个像素点的坐标和灰度值,计算出相应的质心坐标,并根据质心坐标的计算结果,计算目标图像区域的偏心度;
步骤三:以背景的灰度值为二值化阈值,对当前帧图像进行二值化处理,经二值化处理后,背景为黑色,目标图像区域的像素点为白色;
步骤四:根据目标图像区域的偏心度,对经二值化处理的图像进行腐蚀收缩;
步骤五:采用Prewitt算子对二值化后的图像进行轮廓点的检测,检测完成后,记白色的像素点为轮廓点,并判断轮廓点的数量是否达到设定阈值,以确定目标图像区域是否存在目标物,若达到,继续下一步骤,否则,跳转至步骤一,开始处理下一帧图像;
步骤六:从检测到的轮廓点之中选取至少三个,用于确定一个圆心坐标为(a,b),半径为r的拟合圆,若满足条件的轮廓点的个数达到目标阈值,则所述拟合圆为真实目标圆,所述拟合圆的圆心为球型目标物的位置,若达不到目标阈值,则将跳转至步骤一,开始处理下一帧图像;其中,r为所述拟合圆的半径,n为小于r且大于0的常数。
根据一种具体的实施方式,目标区域的图像采用YUV数据输出格式,并进行二值化处理时,提取图像数据的Y值。
根据一种具体的实施方式,采用以下公式计算公式其中M,N分别表示图像的行和列,ρ(x,y)为(x,y)坐标处的灰度值,质心坐标为(U0,V0)。
根据一种具体的实施方式,根据质心坐标(U0,V0),将原始图像划分为左上子区域、右上子区域、左下子区域和右下子区域四个子区域,并且面积分别用S1,S2,S3和S4表示;
先计算和若σ1>1,则偏上,σ1=1,则上下不偏,σ1<1,则偏下,若σ2>1,则偏左,σ2=1,则左右不偏,σ2<1,则偏右;
除σ1=1且σ2=1的情况外,再计算和若σ3>1,则偏左上,σ3<1,则偏右下,若σ4>1,则偏右上,σ4<1,则偏左下;
其中,σ1,σ2,σ3和σ4分别表示相应对比方向上的偏心度。
根据一种具体的实施方式,根据σ1,σ2,σ3和σ4,分别对相应方向上的子区域进行腐蚀收缩。
根据一种具体的实施方式,分别从左上子区域、右上子区域、左下子区域和右下子区域中选取至少一个轮廓点,并且所选取的轮廓点中的任意三个组合确定一个圆,将确定的圆的圆心坐标平均值作为拟合圆的圆心坐标,将确定的圆的半径的平均值作为拟合圆的半径。
与现有技术相比,本发明的有益效果:本发明基于轮廓识别球型目标物位置的方法,其方法为通过获取目标区域的原始图像,标记出目标图像区域,并结合目标图像区域的偏心度,然后对二值化处理后的图像进行腐蚀收缩,使得图像的边缘对称,减少了噪点,并且进一步采用Prewitt算子检测轮廓点,再基于轮廓点确定一个拟合圆,当与拟合圆圆心的距离在设定范围内的轮廓点的个数达到目标阈值,则拟合圆的圆心坐标为球型目标物的中心位置。本发明能够有效地减小噪点的产生,同时运算简单,轮廓识别的准确性高。
附图说明:
图1是本发明的流程示意图;
图2是本发明像素点的八邻域模板示意图;
图3是本发明获取拟合圆圆心的示意图。
具体实施方式
下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
如图1所示的本发明的流程示意图;其中,本发明基于轮廓识别球型目标物位置的方法包括六个步骤。
步骤一:获取目标区域的原始图像后,根据所述原始图像中背景的灰度值,标记目标图像区域。其中,设定在球型目标物所处的位置的一定范围内为目标区域,通过视觉传感器获取目标区域的原始图像。同时球型目标物置于目标区域中,能够与背景明显地区分,从而在获取的原始图像中,球型目标物所在区域的灰度值与背景的灰度值也具有明显的对比,因此,根据原始图像中背景的灰度值,进行灰度值区分,即可标记目标图像区域。
步骤二:根据目标图像区域中各个像素点的坐标和灰度值,计算出相应的质心坐标,并根据质心坐标的计算结果,计算目标图像区域的偏心度。
具体的,采用以下公式计算公式其中M,N分别表示图像的行和列,ρ(x,y)为(x,y)坐标处的灰度值,质心坐标为(U0,V0)。
步骤三:以背景的灰度值为二值化阈值,对当前帧图像进行二值化处理,经二值化处理后,背景为黑色,目标图像区域的像素点为白色。其中,当像素点的灰度值大于背景的灰度值,则将该像素点的灰度值值设置为255;当像素点的灰度值小于或等于背景的灰度值,则将该像素点的灰度值设置为0。即经二值化处理后,背景为黑色,目标图像区域的像素点为白色。
步骤四:根据目标图像区域的偏心度,对经二值化处理的图像进行腐蚀收缩。具体的,首先根据质心坐标(U0,V0),将原始图像划分为左上子区域、右上子区域、左下子区域和右下子区域四个子区域,并且面积分别用S1,S2,S3和S4表示。然后先计算和若σ1>1,则偏上,σ1=1,则上下不偏,σ1<1,则偏下,若σ2>1,则偏左,σ2=1,则左右不偏,σ2<1,则偏右。
除σ1=1且σ2=1,即四个子区域无偏的情况外,再计算和若σ3>1,则偏左上,σ3<1,则偏右下,若σ4>1,则偏右上,σ4<1,则偏左下。其中,σ1,σ2,σ3和σ4分别表示相应对比方向上的偏心度。
在实施时,根据σ1,σ2,σ3和σ4,分别对相应方向上的子区域进行腐蚀收缩,例如则右上子区域与右下子区域构成的右半区域沿质心向内收缩12%面积。
步骤五:采用Prewitt算子对二值化后的图像进行轮廓点的检测,检测完成后,记白色的像素点为轮廓点,并判断轮廓点的数量是否达到设定阈值,以确定目标图像区域是否存在目标物,若达到,继续下一步骤,否则,跳转至步骤一,开始处理下一帧图像。其中,结合图2所示的像素点的八邻域模板示意图;运用Prewitt算子逐行逐列扫描原图像,当前检测的像素点为八邻域模板中Z5位置的像素点,通过下列公式:
Gx=(Z7+Z8+Z9)-(Z1+Z2+Z3);
Gy=(Z3+Z6+Z9)-(Z1+Z4+Z7);
Mi,j=|Gx|-|Gy|;
其中,八邻域模板中Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8和Z9像素点的值为0或1,Mi,j为当前检测像素点的新的值。当所有像素点检测完后,统计白色像素点的数量,并判断其数量是否达到设定阈值。
步骤六:从检测到的轮廓点之中选取至少三个,用于确定一个圆心坐标为(a,b),半径为r的拟合圆,若满足条件的轮廓点的个数达到目标阈值,则所述拟合圆为真实目标圆,所述拟合圆的圆心为球型目标物的位置,若达不到目标阈值,则将跳转至步骤一,开始处理下一帧图像;其中,r为所述拟合圆的半径,n为小于r且大于0的常数。
其中,结合图3所示的获取拟合圆圆心的示意图;在图像中建立平面直角坐标系,然后,先从检测到的轮廓点中获取第一点D1、第二点D2和第三点D3,并且第三点D3分别与第一点和第二点的连线的斜率不相等。即保证第一点D1、第二点D2和第三点D3不在同一条直线上。其中,D1、D2和D3的坐标分别为(x1,y1)、(x2,y2)和(x3,y3)。
以第三点D3和第二点D2间连线的中垂线L23与第三点D3和第一点D1间连线的中垂线L13的交点为拟合圆的圆心。
设L13的直线方程为:y=k1*x+b1,L23的直线方程为:y=k2*x+b2。其中,
那么,将D1与D3之间的中点坐标((x1+x3)/2,(y1+y3)/2)代入L13的直线方程,求得
最后,联立L13和L23的直线方程,从而确定拟合圆的圆心坐标(a,b)和圆的半径r。即
在实施时,本发明的目标区域的原始图像采用YUV数据输出格式,并且在进行二值化处理时,通过提取图像数据的Y值,获取相应像素点的灰度值。
本发明中,n可以是r的四分之一、十分之一等。n的数值可以采用球型目标物的尺寸偏差。
本发明通过标记目标图像区域,并结合目标图像区域的偏心度,然后对二值化处理后的图像进行腐蚀收缩,使得图像的边缘对称,从而减少噪点,而且由于采用Prewitt算子检测轮廓点,并基于轮廓点确定一个拟合圆,使满足条件的轮廓点的个数达到目标阈值,从而提高轮廓的识别准确性。
本发明还提供一种实施例,该实施例基于对步骤六的优化。具体的,通过分别从左上子区域、右上子区域、左下子区域和右下子区域中选取至少一个轮廓点,并且所选取的轮廓点中的任意三个组合确定一个圆,将确定的圆的圆心坐标平均值作为拟合圆的圆心坐标,将确定的圆的半径的平均值作为拟合圆的半径。本实施例中,通过在不同方向的子区域选取轮廓点,样本的质量更高,从而提高轮廓的识别准确性。
上面结合附图对本发明的具体实施方式进行了详细说明,但本发明并不限制于上述实施方式,在不脱离本申请的权利要求的精神和范围情况下,本领域的技术人员可以作出各种修改或改型。