一种二维码的二值化处理方法与流程

文档序号:12670362阅读:1428来源:国知局

本发明涉及二维码领域,具体涉及一种二维码的二值化处理方法。



背景技术:

二维码是用某种特定的几何图形按一定规律在平面也就是二维方向上分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。二维码是一种图像标识技术,因为具有存储容量大,存储信息种类多,纠错能力强等优点,在物品编码,移动支付等领域被广泛应用。

二维码应用范围广,因此其应用环境相对复杂。目前,在光照不均,阴影阻挡等条件下,二维码的解码率不高。在光照不均时,光照强度高区域的灰度值普遍较高,因此易黑色区域误判为白色区域;受阴影影响时,图像的灰度值普遍较低,易将白色区域误判为黑色区域。综上所述,在图像受到外界影响时,例如光照不均,阴影的影响,图像在二值化时,容易出现黑白误判。



技术实现要素:

为了解决上述问题,本发明提供了一种二维码的二值化处理方法。本发明提供的一种二维码的二值化处理方法,在光照不均和阴影影响下提高二维码二值化的准确率。

本发明采用的技术方案如下:

一种二维码的二值化处理方法,包括如下步骤:

S1,获取待处理二维码图像;

S2,将步骤S1获取的二维码图像转换为灰度图像;

S3,中值滤波;

S4,图像二值化;

其中,步骤S4包括:

S41,将步骤S3输出的图像划分为若干不相交的小区域;

S42,判断S42中各个小区域的亮度值的高低;

S43,将亮度值高的区域转换变暗;

S44,使用积分图的方法求取阈值,对S43输出的图像进行二值化处理。

上述的一种二维码的二值化处理方法,其中,所述步骤S42包括如下步骤:

S421,针对S41中的每一个小区域,选取像素点A(x,y),则像素点A的邻域的面积为C,C=(x2-x1)×(y2-y1),其中,(x1,y1)为以像素点A为正方形中心的正方形的左下角的坐标,(x2,y2)为以像素点A为正方形中心的正方形的右上角的坐标,所述正方形为选取的滤波器对应的窗口;

S422,计算像素点A的邻域的灰度均值Rs:

Rs=I(x2,y2)-I(x1,y2)-I(x2,y1)+I(x1,y1)

其中,I(x,y)表示对应点(x,y)的积分图像;

S423,判断该区域是否满足以下条件:Rs≤C*(m+d),当满足时,判断该区域为暗区域,否则,判断该区域为亮区域;m为整幅图像的像素均值,d为整幅图像的标准差。

上述的一种二维码的二值化处理方法,其中,所述步骤S43具体包括,用255减去将亮区域的灰度值得到的新的灰度值即为该亮区域转换成的暗区域对应的灰度值。

上述的一种二维码的二值化处理方法,其中,所述步骤S44具体包括:使用积分图的方法对S43输出的图求取二值化阈值,满足下式则判断为黑,否则为白:

i(x,y)*C≤Rs*(1-t)

其中,i(x,y)为经过步骤S43处理后的图像的灰度值,t为调整系数。

上述的一种二维码的二值化处理方法,其中,所述容错率t的取值范围是0到0.19。

上述的一种二维码的二值化处理方法,其中,所述步骤S2具体包括:步骤S1获取的图像,用R、G、B分别表示彩色图像中每个像素点的红、绿、蓝分量,转换后的灰度图像对应的像素点的亮度值为I,则:

I=0.3*R+0.59*G+0.11*B。

本发明所述的二维码图像的二值化方法及系统,每一个分块区域的灰度阈值都不相同,因此对于每一个分块区域内的像素点在二维码图像被还原的过程中是判定为黑还是判定为白,并不是单纯由其自身的灰度值来决定的,而是考虑到该像素点所在分块区域的预定范围的平均灰度值。即当一个分块区域所在的预定范围的灰度值整体偏大时,那么该分块区域中所对应的灰度阈值就会偏大,反之亦然。即每一个分块区域的灰度阈值是根据其所在区域的背景灰度密切相关的,因此得到的二值化结果可以排除外界环境的干扰,可以清晰呈现出二值化图像。本发明所述的二维码图像的二值化方法,算法简单,没有过于繁杂的计算。本发明所述的二维码图像的二值化方法,分块区域互不相交,使得获得的二值化图像的效果很好,不会出现边缘模糊的效果,为后续的解码步骤打下了良好的基础。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种二维码的二值化处理方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

如图1所示,一种二维码的二值化处理方法,包括如下步骤:

S1,获取待处理二维码图像;

S2,将步骤S1获取的二维码图像转换为灰度图像;步骤S1获取的图像,用R、G、B分别表示彩色图像中每个像素点的红、绿、蓝分量,转换后的灰度图像对应的像素点的亮度值为I,则:

I=0.3*R+0.59*G+0.11*B。

S3,中值滤波;获取图像时,可能会受到电流不稳定等因素的影响,图像会出现噪声点,使用中值滤波,可以减少噪声点的干扰。中值滤波法是一种非线性平滑技术,将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

S4,图像二值化;由于二维码最终只有黑和白两种颜色,所以,最终需要对通过步骤S3获取的二维码进行转换,转换成二值图像。本步骤使用积分图的方法对图像进行二值化处理。

所谓积分图是指对于一幅灰度的图像,积分图中的任意一点(x,y)的值是指从图像的左上角到这个点的所构成的矩形区域内所有的点的灰度值之和。I表示积分图像,G表示原始图像。则I(x,y)=sum(G(i,j)),其中0<=i<=x,0<=j<=y.

在实际的计算过程中,对于一个点(x,y)的值等于:

I(x,y)=I(x-1,y)+I(x,y-1)-I(x-1,y-1)+G(i,j),I:该点的积分图像值,G:该点的灰度值。

在实际的编程实现过程中可以对有图像的大小进行扩展,左边扩展一列,顶端扩展一行,即:I(-1,j)=0,I(i,-1)=0;

因为使用积分图像求取阈值然后二值化的方法,对阴影阻挡等使图像变暗的情况效果理想,与此同时,为了进一步的克服光照不均等使图像亮度变亮的情况,故进行如下步骤:

S41,将步骤S3输出的图像划分为若干不相交的小区域;

S42,判断S42中各个小区域的亮度值的高低;

积分图像用下式表达:

I(i,j)=I(i,j-1)+colSum(i,j),

其中,colSum(i,j)表示原始图像第j列前i个像素之和。

S421,针对S41中的每一个小区域,假设划分区域的面积大小为S,任意选取像素点A(x,y),则像素点A的邻域的面积为C,C=(x2-x1)×(y2-y1),其中,(x1,y1)为以像素点A为正方形中心的正方形的左下角的坐标,(x2,y2)为以像素点A为正方形中心的正方形的右上角的坐标,所述正方形为步骤S3中中值滤波选取的滤波器对应的窗口;

S422,计算像素点A的邻域的灰度均值Rs:

Rs=I(x2,y2)-I(x1,y2)-I(x2,y1)+I(x1,y1)

其中,I(x,y)表示对应点(x,y)的积分图像;

S423,判断该区域是否满足以下条件:Rs≤C*(m+d),当满足时,判断该区域为暗区域,否则,判断该区域为亮区域。m为整幅图像的像素均值,d为整幅图像的标准差。

每个区域的每个像素点都要进行步骤S421-S423的处理判断。

S43,将亮度值高的区域转换变暗;用255减去将亮区域的灰度值得到的新的灰度值即为该亮区域转换成的暗区域对应的灰度值。

S44,使用积分图的方法求取阈值,对S43输出的图像进行二值化处理。

所述步骤S44具体包括:使用积分图的方法对S43输出的图求取二值化阈值,满足下式则判断为黑,否则为白:

i(x,y)*C≤Rs*(1-t)

其中,i(x,y)为经过步骤S43处理后的图像的灰度值,t为容错率,优选的,所述容错率t的取值范围是0到0.19。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1