本发明涉及一种象棋机器人,特别是一种象棋机器人对棋盘图像的处理方法。
背景技术:
人类接受外界信息的方式是通过视觉,模仿人类的眼睛视觉为机器人增加视觉功能,希望机器人也能和人一样对外界不同的环境做出不同的反应,我们需要安装摄像头获取图像,将图片经过计算机的一系列加工处理,使得图片转化为计算机、机器人能够理解的数据。
技术实现要素:
本发明要解决的技术问题是针对上述现有技术的不足,而提供一种象棋机器人对棋盘图像的处理方法。
为解决上述技术问题,本发明采用的技术方案是:
一种象棋机器人对棋盘图像的处理方法,包括:
第一步,对棋盘图像进行灰度化处理;具体做法为:首先找出像素点的三个颜色分量的值,并对这三个值取平均值,然后令该像素点的三个颜色分量的值都取一样的平均值;以该像素点的亮度值来表示图像的灰度值,在yuv色彩空间中,y的意义是指像素点的亮度,因此,我们可以用色彩的分量值来共同描述出y的取值,并将该值作为图像的灰度值;
第二步,对第一步中灰度化后的棋盘图像进行中值滤波处理;把邻域中的像素,按像素的灰度级数进行升序排序,然后计算该组像素值对应的中位数,并以此数作为该组像素的目标像素值;
第三步,对第二步中经滤波的棋盘图像进行锐化处理;利用微分法对经滤波处理后模糊的图像边缘进行锐化处理;
第四步,对第三步中经锐化处理的棋盘图像进行图像分割;
第五步,对第四步中经分割处理的棋盘图像进行边缘检测;边缘检测算子采用sobel算子。
所述第二步中中值滤波处理的具体做法为:
1、以像素点为中心,用一种图形作为分割,提取出该像素点的领域,按像素的灰度级数进行升序排序,然后计算该组像素值对应的中位数,并以此数作为该组像素的目标像素值;
2、获取模板所有像素的灰度值;
3、以从小到大的顺序对这些灰度值进行排列;
4、将中间数据作为该模板的像素值。
所述第四步中图像分割的具体做法是:
1、随机选取一个初始的阈值t;
2、用当前的阈值作为图像的分割标准,将图像分成两个区域;
3、计算出两个区域的像素的平均灰度值μ1和μ2;
4、计算一个新的阈值:
5、重复步骤2和4,直到阈值不再发生变化或者是变化幅度小于设定的值。
所述第一步中颜色亮度值转换为灰度值的公式为:
gray(i,j)=0.3r(i,j)+0.59g(i,j)+0.11b(i,j)
式中:gray(i,j)表示转换后的图像在点(i,j)处的灰度值;r(i,j)表示图像在点(i,j)处的红色亮度值;g(i,j)表示图像在点(i,j)处的绿色亮度值;b(i,j)表示图像在点(i,j)处的蓝色亮度值。
本发明采用上述方案后,具有如下技术效果:
本发明提供了一套完整的象棋机器人图像处理方法,机器人摄像头获取到的图像,利用计算机对图像进行灰度、滤波、锐化等操作,使图像被处理成为象棋机器人能够准确识别中棋盘图像中的重要信息,为后续准确设计棋盘坐标、识别棋子做好准备。
附图说明
图1是未处理过的棋盘图像。
图2是灰度化后的棋盘图像。
图3是中值滤波后的棋盘图像。
图4是经微分法处理后的棋盘图像。
图5是经阈值分割后的棋盘图像。
图6是经边缘检测后的棋盘图像。
具体实施方式
第一步,对棋盘图像进行灰度化处理;具体做法为:首先找出像素点的三个颜色分量的值,并对这三个值取平均值,然后令该像素点的三个颜色分量的值都取一样的平均值;以该像素点的亮度值来表示图像的灰度值,在yuv色彩空间中,y的意义是指像素点的亮度,因此,我们可以用色彩的分量值来共同描述出y的取值,并将该值作为图像的灰度值;
转换公式为:
gray(i,j)=0.3r(i,j)+0.59g(i,j)+0.11b(i,j)
式中gray(i,j)表示转换后的图像在点(i,j)处的灰度值;r(i,j)表示图像在点(i,j)处的红色亮度值;g(i,j)表示图像在点(i,j)处的绿色亮度值;b(i,j)表示图像在点(i,j)处的蓝色亮度值。
计算机只能识别数字信息,图像需要转化为数字矩阵,这些矩阵元素的值代表了图像某个点的色彩信息。
彩色图像中的每个像素的颜色是由r(红色)、g(绿色)、b(蓝色)这三个分量共同决定的。这三个分量中的每一个分量都包含了255个不同的数值,这也会导致一个像素点的可能取值有1600多万种。而一张图片中成千上万个这样的像素点,导致一张图像的信息量太大,处理效率低下,不能够满足工业等实际需求。因此,在实际应用中,为了加快处理速度,我们通常需要将彩色图像转换为灰度图后再进行分析。一般情况下,彩色图像的每个元素用三个字节表示,每个字节对应着r(红色)、g(绿色)、b(蓝色)分量的亮度,转换后的灰度图的每一个像素用一个字节来表示该像素点的灰度值,值的范围为0~255,数值越小,该点越暗,反之越亮。虽然,灰度图相对于原来的图像而言,像素点的取值范围大大的减少了,但是它仍然能够很好的表示出图像的色度以及亮度等特征。
灰度图是指只包含图像的亮度信息而不包含色彩信息的图像。因为灰度图的亮度变化是连续的,所以要把图像的亮度值进行量化来表示灰度图,一般划分为0~255,"0"表示纯黑色,"255"表示纯白色,中间的数字从小到大表示由黑到白的过渡色。
如图1所示是未处理过的棋盘图像,灰度化后的棋盘图像如图2所示。
第二步,对第一步中灰度化后的棋盘图像进行中值滤波处理;把邻域中的像素,按像素的灰度级数进行升序排序,然后计算该组像素值对应的中位数,并以此数作为该组像素的目标像素值;具体做法为:
1、以像素点为中心,用一种图形作为分割,提取出该像素点的领域,按像素的灰度级数进行升序排序,然后计算该组像素值对应的中位数,并以此数作为该组像素的目标像素值;
2、获取模板所有像素的灰度值;
3、以从小到大的顺序对这些灰度值进行排列;
4、将中间数据作为该模板的像素值,同时,根据对图像的实际需求,选用不同的模板,因为模板的选择对实际滤波效果影响很大;
中值滤波对图像的噪声去除效果相对于线性滤波具备了很大的优越性,因为它不像线性滤波一样通过取像素值的平均值作为新的像素点值,所以滤波效果不会像线性滤波一样有严重的边缘模糊的现象发生。中值滤波后的棋盘如图3所示。
第三步,对第二步中经滤波的棋盘图像进行锐化处理;利用微分法对经滤波处理后模糊的图像边缘进行锐化处理;
虽然中值滤波相对于线性方法来说,对边缘的模糊影响已经有了很大的改善,但是仍然有着很大的进步空间。图像像素点的值经过求取平均值或是积分时,图像就会变得模糊不清,这是导致滤波处理后图像边缘模糊的根本原因。
微分法对图像边缘进行锐化处理的方法为现有技术,其目的是通过对高频区域的处理,使得滤波处理后模糊的图像边缘有所恢复,甚至起到增强的效果,清晰的边缘更利于机器视觉的观察和处理,提高识图像信息的识别率。通过对边缘的强化,使得边缘信息更加突出。在需要提取、分割出图像的情况下,就需要边缘锐化的技术,以便精确的从复杂的背景中完整的提取出图像。为下一步的图像处理打下了基础。经微分法处理后的棋盘图像如图4所示。
第四步,对第三步中经锐化处理的棋盘图像进行图像分割;具体做法是:
1.随机选取一个初始的阈值t(也可以根据经验选取一个更加接近最佳阈值的值,或者是选平均值);
2.用当前的阈值作为图像的分割标准,将图像分成两个区域;
3.计算出两个区域的像素的平均灰度值μ1和μ2;
4.计算一个新的阈值:
5.重复步骤2和4,直到阈值不再发生变化或者是变化幅度小于某一个设定的值。
经阈值分割后的棋盘如图5所示。
图像分割的目的是将物理意义上属于同一种类别的信息集合起来,与其它类别的信息分开,便于处理分析。
第五步,对第四步中经分割处理的棋盘图像进行边缘检测;
边缘检测算子采用现有技术中的sobel算子,先对图像进行平滑处理,再对处理后的结果进行微分运算。经边缘检测后的棋盘如图6所示。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。