一种二维码图像二值化的改进方法与流程

文档序号:11520669阅读:653来源:国知局

本发明涉及图像处理技术领域,尤其涉及一种二维码图像二值化的改进方法。



背景技术:

二维码因具有信息存储能力强、识读方便、保密性好等优点而被广泛使用。二维码图像在识别过程中,通过扫描头或摄像头处理的图片难免会出现失真、模糊、倾斜或者光照不均的现象,以致于影响识读效果,现有的图像处理方式是通过图像灰度化处理之后对图像进行二值化处理,但由于二维码使用环境千差万别,光照环境不均衡,在对图像二值化处理的时候,往往不能对在光照不均匀和交黑暗地方获取到的二维码图像进行较好的二值化处理,使之在后续的识别上往往无法识别出二维码图像的信息,或对二维码图像的信息识别错误。



技术实现要素:

本发明的目的在于克服现有技术的不足,本发明提供了一种二维码图像二值化的改进方法,能更好的针对在光照不均匀的条件下获取到的二维码图像进行二值化处理,并获取到较好的处理效果。

为了解决上述技术问题,本发明实施例提供了一种二维码图像二值化的改进方法,所述方法包括:

将采集到的二维码图像进行预处理,获取预处理后的二维码图像,其中所述预处理包括设定二维码图像的长度为m,宽度为n,对所述二维码图像进行灰度化处理;

将所述预处理后的二维码图像进行分块和标注处理,获取分块和标注处理后的二维码图像块;

计算每个二维码图像块的像素值和像素值阈值,采用ave[a]表示计算获取的像素值,ta表示像素值阈值,其中所述a表示第a块二维码图像块;

将所有的二维码图像块进行融合处理,获取成完整的二维码图像。

优选地,所述将所述预处理后的二维码图像进行分块和标注处理为将所述预处理后的二维码图像分成4块,每块分别记为pa,a=1,2,3,4。

优选地,所述计算每个二维码图像块的像素值的公式为:

其中,p1,p2,p3,p4表示不同的二维码图像块,a(i,j)表示待处理的二维码图像,m、n分别表示待处理的二维码图像的长和宽。

优选地,所述计算每个二维码图像块的像素值阈值的公式为:

其中,ta表示像素阈值,ave[a]表示第a个图像块的像素值。

优选地,所述将所有的二维码图像块进行融合处理,获取成完整的二维码图像,包括:

采用自适应阈值调整的方式调整二维码图像块融合时的像素阈值,使融合后完整的二维码图像像素值点均匀分布。

在具体实施过程中,能更好的针对在光照不均匀的条件下获取到的二维码图像进行二值化处理,并获取到较好的处理效果;使得在后续对二维码图像中的信息的识别中,能更快更准确的进行识别。

附图说明

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

图1是本发明实施例中的二维码图像二值化的改进方法的方法流程示意图。

具体实施方式

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

为了提高二维码图像的快速识别能力,需要将灰度处理后的图像转化为二值图像。图像像素点的处理依据阀值,根据阀值t来划分,一般划分为两部分,一部分是大于t的像素点,另一部分是小于t的像素点,划分依据的表达式为:

其中,g(x,y)标示二值化后的像素点,f(x,y)表示原始图像像素点,t是二值化阀值。

自适应阈值算法关键是要选取一个合适的阈值,通常求它所用的阈值选取方法是基于点的全局阈值算法,具体做法是首先选一个像素作为中心,然后参照此像素点再选择一个邻域,并以这个像素点作为邻域的中心。然后在该邻域内查找的最大像素值与最小像素值,要将选取邻域中的最大像素值与最小像素值查找出来,计算最大像素值与最小像素值的平均值,把计算得到的平均值作为二值化的阈值。计算中,基本要选择合适的窗口,窗口不能太大,也不能太小,如果选择的窗口太大,要处理的像素就越多,运算多需要的时间就越长。首先,要选择大小合适的窗口,尽可能的提高运算的速度,减少运算所需的时间,但前提是要保证二值化的同等效果。在这里,将二维码码图像分成四块,每一块选择一个合适的阈值分别进行二值化。将图像分成小块分别进行处理,每一块内像素值比较接近,没有明显的跳跃现象,这样能够得到比较理想的二值化效果。不会对二维码图像进行误判,同时处理速度比较快,在实际应用中,能够满足要求。将目标从背景中快速的分离出来。

图1是本发明实施例中的二维码图像二值化的改进方法的方法流程示意图,如图1所示,所述方法包括:

s11:将采集到的二维码图像进行预处理,获取预处理后的二维码图像,其中所述预处理包括设定二维码图像的长度为m,宽度为n,对所述二维码图像进行灰度化处理;

s12:将所述预处理后的二维码图像进行分块和标注处理,获取分块和标注处理后的二维码图像块;

s13:计算每个二维码图像块的像素值和像素值阈值,采用ave[a]表示计算获取的像素值,ta表示像素值阈值,其中所述a表示第a块二维码图像块;

s14:将所有的二维码图像块进行融合处理,获取成完整的二维码图像。

对s11作进一步说明:

通过摄像头或相机对二维码图像进行采集,然后将采集到的二维码图像传输到待预处理系统中,在待预处理系统中进行预处理,预处理过程中,首先,将待预处理的二维码图像设置为a(i,j),设定二维码图像的长度为m,宽度为n,然后再对二维码图像进行灰度化处理。

对s12作进一步说明:

对预处理之后的二维码图像进行分块,然后对每一个分块分别进行标注,在具体实施过程中,将预处理后的二维码图像分成4块,每块分别记为pa,a=1,2,3,4。因为在计算二维码图像像素时,需要选择合适的窗口,窗口不能太小,如果太小,要处理的图像块太多,计算表述太复杂,也不能太大,如果选择的窗口太大,要处理的像素就越多,运算多需要的时间就越长。要选择大小合适的窗口,尽可能的提高运算的速度,减少运算所需的时间,但前提是要保证二值化的同等效果。因此本发明实施例中选择将二维码图像分为4块进行处理。

对s13作进一步说明:

分别计算每个二维码图像块的像素值和像素阈值,采用ave[a]表示计算获取的像素值,ta表示像素值阈值,其中所述a表示第a块二维码图像块;

其中,计算每个二维码图像块的像素值的公式为:

其中,p1,p2,p3,p4表示不同的二维码图像块,a(i,j)表示待处理的二维码图像,m、n分别表示待处理的二维码图像的长和宽。

其中,计算每个二维码图像块的像素值阈值的公式为:

其中,表示像素阈值,表示第个图像块的像素值。

对s14作进一步说明:

将所有的二维码图像块进行融合处理,获取成完整的二维码图像。

进一步的,采用自适应阈值调整的方式调整二维码图像块融合时的像素阈值,使融合后完整的二维码图像像素值点均匀分布。

在图像融合过程中,采用horzcat函数和vertcat函数进行融合,这两个函数是matlab自带的函数,在融合过程中要经过尝试选用不同合适的补偿因子,用它调节自适应阈值中,不同子块间的差异,尽可能的使整幅图片的像素值点均匀的分布,降低客观环境对图像二值化带来的影响,这里主要是光照不均的影响。

在具体实施过程中,能更好的针对在光照不均匀的条件下获取到的二维码图像进行二值化处理,并获取到较好的处理效果;使得在后续对二维码图像中的信息的识别中,能更快更准确的进行识别。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

另外,以上对本发明实施例所提供的一种二维码图像二值化的改进方法进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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