批量扫描二维码的方法和批量扫描二维码的装置与流程

文档序号:14836297发布日期:2018-06-30 12:33阅读:1228来源:国知局
批量扫描二维码的方法和批量扫描二维码的装置与流程
本发明涉及信息处理
技术领域
,特别是涉及一种批量扫描二维码的方法以及一种批量扫描二维码的装置。
背景技术
:目前的二维码技术已经获得了较为普遍的实现和应用,目前在通过二维码进行定位扫描时,都是根据二维码的定位图案进行定位找到二维码的位置,例如QR码(二维条码的一种)的“回”形定位图案。随着二维码应用的发展,对二维码进行批量扫描也逐渐进入大众视野,在进行二维码的批量扫描时,是利用二维码定位的方式确定扫描得到的图像中每个二维码对应的条码区域,然后再针对每个条码区域识别“回”形框来定位二维码,然而,当多个二维码在一起识别时,多个“回”形框可能存在相互干扰的情况,从而可能将不是二维码的区域误认为是二维码区域,使得二维码定位不准,裁剪出非二维码区域进行解码。技术实现要素:基于此,有必要针对现有的无法定位多种二维码且在对多个二维码定位时会误定位的问题,提供一种批量扫描二维码的方法以及一种批量扫描二维码的装置。为达到上述目的,本实施例采用以下技术方案:一种批量扫描二维码的方法,包括步骤:采集图像,获得待检测图像;对所述待检测图像进行二值化处理,获得二值化图像;根据预定二维码扫码模式对所述二值化图像进行扫描,获得二维码模式点;对所述二维码模式点进行聚类,获得聚类后的各聚类中心点;分别计算各聚类中心点分别与除了自身之外的其他各聚类中心点的距离,确定各聚类中心点与除了自身之外的其他各聚类中心点的距离的最小距离值;根据各聚类中心点对应的最小距离值确定聚类中心点间平均距离;根据所述聚类中心点间平均距离确定二维码剪切边长;根据所述二维码剪切边长以及所述聚类中心点,对所述待检测图像进行剪切,获得剪切后的分别包含单个二维码的各二维码局部图像。一种批量扫描二维码的装置,包括:图像采集模块,用于采集图像,获得待检测图像;第一图像处理模块,用于对所述待检测图像进行二值化处理,获得二值化图像;二维码扫描模块,用于根据预定二维码扫码模式对所述二值化图像进行扫描,获得二维码模式点;聚类模块,用于对所述二维码模式点进行聚类,获得聚类后的各聚类中心点;聚类中心距离确定模块,用于分别计算各聚类中心点分别与除了自身之外的其他各聚类中心点的距离,确定各聚类中心点与除了自身之外的其他各聚类中心点的距离的最小距离值,并根据各聚类中心点对应的最小距离值确定聚类中心点间平均距离;剪切边长确定模块,用于根据所述聚类中心点间平均距离确定二维码剪切边长;剪切模块,用于根据所述二维码剪切边长以及所述聚类中心点,对所述待检测图像进行剪切,获得剪切后的分别包含单个二维码的各二维码局部图像。上述实施例的方案,其在采集图像后,对图像进行二值化处理,并基于预定二维码扫码模式对二值化处理后的图像进行扫描,对扫描得到的二维码模式点进行聚类获得各聚类中心点,并基于聚类中心点的距离确定二维码剪切边长,然后结合二维码剪切边长以及聚类中心点对采集到的待检测图像进行剪切,获得包含单个二维码的各二维码局部图像,其通过聚类的方式,基于聚类中心点之间的距离确定二维码剪切边长,并结合二维码剪切边长和聚类中心点进行剪切,从而准确地对各二维码进行定位,提高了二维码定位和剪切的准确性。附图说明图1是本实施例方案的一个应用环境的示意图;图2是一个实施例中的终端的组成结构的示意图;图3是一个实施例中的批量扫描二维码的方法的流程示意图;图4是一个具体应用示例中初始化后的二维码扫描模式的示意图;图5是一个具体应用示例中的待检测对象的示意图;图6是一个具体应用示例中图5所示的待检测对象的二值化图像示意图;图7是对图6所示的二值化图像扫描得到的二维码模式点的示意图;图8是对图7所示的二维码模式点去重处理后的示意图;图9是对图8中的二维码模式点得到的聚类中心点之间的距离的示意图;图10是基于图9中点1至点6对图5的待检测对象进行剪切得到的二维码局部图像的示意图;图11是一个具体示例中的确定预定二维码扫码步长的流程示意图;图12是一个具体应用示例中的采集的单个二维码模板图像的示意图;图13是图12所示的单个二维码模板图像的二值化图像的示意图;图14是图13所示的二值化图像的黑色像素直方图的示意图;图15是一个具体示例中的对直方图进行去噪处理的流程示意图;图16是一个示例中对图14中所示的黑色像素直方图划分等份后的示意图;图17是对图16中所示的黑色像素直方图去噪后得到的去噪后黑色像素直方图的示意图;图18是图17的去噪后黑色像素直方图映射后得到的局部图像块的示意图;图19是一个具体示例中的对局部图像块进行图像条抽样的流程示意图;图20是一个示例中对图18的局部图像块抽样得到的行图像条块的示意图;图21是一个示例中对图18的局部图像块抽样得到的列图像条块的示意图;图22是一个示例中基于局部抽样图像块确定二维码扫码步长的示意图;图23是一个具体示例中图20所示的行图像条块的直方图统计图的示意图;图24是一个具体示例中图21所示的列图像条块的直方图统计图的示意图;图25是一个实施例中的批量扫描二维码的装置的结构示意图;图26是一个具体示例中的二维码扫码步长确定模块的结构示意图;图27是一个具体示例中的剪切模块的结构示意图。具体实施方式为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。图1示出了本发明一个实施例中的工作环境示意图,如图1所示,其工作环境涉及待摄像设备的可以进行二维码扫描的终端,该终端可能是图1中所示的移动终端101、笔记本电脑102、带摄像机1030的终端103,可以理解,还可能是其他的带有摄像机的其他类型的终端。终端通过其携带的摄像头对包含多个二维码的场景进行图像画面进行拍摄,并从中分割出各二维码图像进行二维码识别,从而实现对二维码的批量扫描。本发明实施例涉及的是对摄像头拍摄到的包含多个二维码的图像,从中分割出各个二维码的方式。扫描包含多个二维码的图像的终端在一个实施例中的结构示意图如图2所示。该终端包括通过系统总线连接的处理器、存储介质、通信接口、电源接口和内存。其中,终端的存储介质存储有一种批量扫描二维码的装置,该装置用于实现一种批量扫描二维码的方法。终端的通信接口用于与网络设备(例如后台服务器)连接和通信,终端的电源接口用于与外部电源连接,外部电源通过该电源接口向终端供电。终端可以是任何一种可以进行拍摄的设备,例如移动终端、平板电脑、个人计算机等;也可以是其它具有上述结构的设备。图3中示出了一个实施例中的批量扫描二维码的方法的流程示意图。如图3所示,该实施例中的批量扫描二维码的方法包括:步骤S31:采集图像,获得待检测图像;步骤S32:对所述待检测图像进行二值化处理,获得二值化图像;步骤S33:根据预定二维码扫码模式对所述二值化图像进行扫描,获得二维码模式点;步骤S34:对所述二维码模式点进行聚类,获得聚类后的各聚类中心点;步骤S35:分别计算各聚类中心点分别与除了自身之外的其他各聚类中心点的距离,确定各聚类中心点与除了自身之外的其他各聚类中心点的距离的最小距离值;步骤S36:根据各聚类中心点对应的最小距离值确定聚类中心点间平均距离;步骤S37:根据所述聚类中心点间平均距离确定二维码剪切边长;步骤S38:根据所述二维码剪切边长以及所述聚类中心点,对所述待检测图像进行剪切,获得剪切后的分别包含单个二维码的各二维码局部图像。上述实施例中的方案,其在采集图像后,对图像进行二值化处理,并基于预定二维码扫码步长对二值化处理后的图像进行扫描,对扫描得到的二维码模式点进行聚类获得各聚类中心点,并基于聚类中心点的距离确定二维码剪切边长,然后结合二维码剪切边长以及聚类中心点对采集到的待检测图像进行剪切,获得包含单个二维码的各二维码局部图像,其通过聚类的方式,基于聚类中心点之间的距离确定二维码剪切边长,并结合二维码剪切边长和聚类中心点进行剪切,从而准确地对各二维码进行定位,提高了二维码定位和剪切的准确性。可以理解的是,分割出各二维码图像的目的,是为了对二维码进行识别,因此,如图3所示,在上述步骤S38之后,还可以包括:步骤S39:分别对各二维码局部图像进行解码,获得解码后的各二维码信息。具体的对二维码进行解码的方式,可以采用目前已有以及以后可能出现的任何方式进行。为便于更详细的理解本方案,以下结合其中一个具体应用示例进行说明。本实施例方案在实施时,是基于二维码扫描模式进行图像采集,因此,具体采集图像前,可以先进行扫描模式的初始化。在进行初始化时,可以是在取所述二维码扫码步长后,根据该预定二维码扫码步长进行扫描模式的初始化。结合图4所示,该扫描模式的初始化可以包括:检测点为像素值为255的白色点,检测点的上下相邻的两个像素处各有一个像素值为255的白色点,距离检测点所述预定二维码扫码步长处各有辅助点,所述辅助点为像素值为0的黑色点,辅助点上下相邻的两个像素处各有一个像素值为0的黑色点。一个具体应用示例中初始化后的二维码扫描模式的示意图如图4所示,图4所示中,预定二维码扫码步长为6。在根据预定二维码扫码步长完成扫描模式的初始化后,整个扫描系统初始化完成,即可进行后面的采集图像并进行分析的批量扫描的过程。图5中示出了一个具体示例中采集图像后得到的待检测对象的示意图,由图5可见,该待检测对象中包含有多个二维码。然后对该待检测对象进行图像处理得到对应的二值化图像,具体的图像处理包括灰度处理、二值化处理等等,具体的灰度处理、二值化处理方式可以采用目前已有的方式进行。针对图5中所示的待检测对象,得到的二值化图像如图6所示。随后,即可对二值化图像根据二维码扫码模式进行二维码模式点检测,为了更大范围的检测二维码区域,提高检测二维码的能力,基于上述预定二维码扫码步长,在实际进行二维码模式点检测时,可以将预定二维码扫码步长扩展为多个扫码步长。以图4中所示的预定二维码扫码步长为6个像素为例,可以从扫描步长为6个像素扩展为3、6、12个像素点,只要符合步长为3或步长为6或步长为12的任何一个步长的扫码模式都认为该点为二维码模式点。可以理解的是,还可以将扫描步长为6个像素扩展为其他像素步长,例如4个像素点、9个像素点或者其他个数像素点等,具体的扩展方式可以结合实际技术应用需要进行设定。以预定二维码扫码步长为6个像素点为例,对图6中所示的二值化图像进行二维码模式扫描后,得到的二维码模式点如图7所示。由图7可见,采集到的二维码模式点有的地方密集,有的地方稀疏,为了防止数据倾斜对聚类结果造成影响,因此在一个具体示例中可以对上述得到的二维码模式点进行去重处理,具体的去重处理的方式可以采用任何可能的方式进行,一个具体示例中的去重处理后的二维码模式点如图8所示。随后对上述二维码模式点进行聚类,获得聚类后的各聚类中心点,具体的聚类分析方式可以采用任何可能的方式进行,例如自适应k-means聚类。针对图8所示的二维码模式点,最后得到6个聚类中心点,各聚类中心点的坐标分别为:点1(132,376)、点2(246,89)、点3(278,396)、点4(334,233)、点5(453,103)、点6(506,341)。基于距离计算方式(例如欧式距离计算方式),可以依次计算出各聚类中心点与其他的各聚类中心点(即除了自身之外的其他各聚类中心点)之间的距离,并从中确定出最小距离值。图9中示出了针对图8所示的二维码模式点得到的聚类中心点1到其他的各距离中心点的距离的示意图,结合图9所示,点1与点2、3、4、5、6的距离分别为308.8、147.3、247.5、421.4、375.6,从而聚类中心点1与除了自身之外的其他各聚类中心点的距离的最小距离值为147.3。据此,图9所示中的各聚类中心点之间的最小距离值可以如下表1所示。表1点1点2点3点4点5点6点10308.81147.36247.49421.39375.63点2308.810308.66168.76207.47362.08点3147.36308.660172.35341.28234.54点4247.49168.76172.350176.24203.1点5421.39207.47341.28176.240243.83点6375.63362.08234.54203.1243.830取各聚类中心点对应的最小距离值的平均值,即可确定出聚类中心点间平均距离,于是有:avgDist=(minDist1+minDist2+...+minDistn)/n=(147.3+168.7+147.3+168.7+176.2+203.1)/6=168.55式中,avgDist表示聚类中心点间平均距离,minDist1表示聚类中心点1对应的最小距离值,minDistn表示聚类中心点n对应的最小距离值,从而图10所示示例中获得的聚类中心点间平均距离为168。随后,即可基于该聚类中心点平均距离确定出二维码剪切边长,并基于确定的二维码剪切边长进行剪切。在基于该聚类中心点平均距离确定出二维码剪切边长时,可以结合为了保证剪切边长在正常范围内设置的预设剪切边长阈值进行。例如,若聚类中心点间平均距离的2倍小于或者等于预设剪切边长阈值,将聚类中心点间平均距离的2倍作为所述二维码剪切边长;若聚类中心点间平均距离的2倍大于所述预设剪切边长阈值,将所述预设剪切边长阈值作为所述二维码剪切边长。在一个具体示例中,二维码剪切边长可以包括剪切高度和剪切宽度,在具体进行剪切时,可以采用下述方式进行:将聚类中心点的横坐标减去所述剪切宽度的一半后的第一横坐标值作为待剪切局部图像的横坐标起始坐标;将聚类中心点的横坐标加上所述剪切宽度的一半后的第二横坐标值作为待剪切局部图像的横坐标结束坐标;将聚类中心点的纵坐标减去所述剪切高度的一半后的第一纵坐标值作为待剪切局部图像的纵坐标起始坐标;将聚类中心点的纵坐标加上所述剪切高度的一半后的第二纵坐标值作为待剪切局部图像的纵坐标结束坐标;对所述待检测图像中的所述横坐标起始坐标、横坐标结束坐标、纵坐标起始坐标、纵坐标结束坐标之间的图块进行剪切,获得包含单个二维码的二维码局部图像。结合图9所示,在具体应用时,可以根据二维码的特性,将剪切高度和宽度的值设为相等,值为a,即二维码剪切边长包括剪切高度和剪切宽度的值相同。基于上述确定的聚类中心点平均距离r,以聚类中心点平均距离r=168为半径,求得a=2*r,于是a=236。为了保证剪切边长在正常范围内,将剪切边长a=236与设置的边长最大阈值maxLenTh进行比较,如果剪切边长a大于maxLenTh,则取a=maxLenTh;如果剪切边长a小于maxLenTh,则a保持原值不变假设。在本示例中,假设maxLenTh=230,从而得到最终的高度和宽度的边长值为230。将剪切高度值记为height,剪切宽度值记为width,聚类中心点的坐标为(x,y),基于如上所述方式,从而得到待剪切局部图像块在x轴(横坐标)方向上位于整个图像中的起始坐标:xBegin=x-width*0.5;在y轴(纵坐标)方向上位于整个图像中的起始坐标:yBegin=y-height*0.5;在x轴方向上位于整个图像中的结束坐标:xEnd=x+width*0.5;在y轴方向上位于整个图像中的结束坐标:yEnd=y+height*0.5。为了防止起始坐标越界,可以在计算出来的起始坐标小于0时,将起始坐标设置为0值。即若第一横坐标值小于0(xBegin<0),将横坐标起始坐标设置为0(xBegin=0),若第一纵坐标值小于0(yBegin<0),将纵坐标起始坐标设置为0(yBegin=0)。为了防止结束坐标越界,可以在计算出来的结束坐标超出原图最大高度和宽度值时,将起始点坐标往前移。假设整个原图像高度为rawHeight,原图像宽度为rawWidth,则有:若第二横坐标值大于待检测图像的图像宽度(xEnd>rawWidth),则将横坐标起始坐标前移第二横坐标值与待检测图像的图像宽度的差值的距离(即xBegin=xBegin-(xEnd-rawWidth));若第二纵坐标值大于待检测图像的图像高度(yEnd>rawHeight),则将纵坐标起始坐标前移第二纵坐标值与所述待检测图像的图像高度的差值的距离(即yBegin=yBegin-(yEnd-rawHeight))。随后,从待检测图像中对横坐标起始坐标、横坐标结束坐标、纵坐标起始坐标、纵坐标结束坐标之间的图像块进行剪切,获得包含二维码的230*230图像块。据此对图5的待检测对象进行剪切得到的点1至点6的二维码局部图像的示意图分别依次如图10的10-1、10-2、10-3、10-4、10-5、10-6所示。在得到各二维码局部图像后,即可依次对各二维码局部图像进行二维码解码,二维码解码后得到的信息可以进行存储。以二维码针对的是商品的信息为例,还可以对解码得到的信息写入数据库,完成商品的二维码信息的录入。一个具体示例中录入的商品二维码信息如下表2所示。表2商品id商品名称商品分类商品信息录入日期录入人员id1名称1类型1信息1日期1人员1id2名称2类型2信息2日期2人员2id3名称3类型3信息3日期3人员3id4名称4类型4信息4日期4人员4id5名称5类型5信息5日期5人员5..................至此,不仅完成的批量二维码的检测和剪切,还完成了多个商品二维码图像的解码、信息录入等工作,实现了多个二维码图像信息录入数据库的功能。在上述步骤S33中根据预定二维码扫码模式对所述二值化图像进行扫描时,可以是基于预定的二维码扫码步长进行预定二维码扫码模式的扫描。据此,如图3所示,在上述S31之前,还可以包括步骤:步骤S30:确定图像采集设备的当前高度下的预定二维码扫码步长。上述预定二维码扫码步长,可以由技术人员结合技术经验确定。在本实施例的一个具体应用示例中,可以通过训练的方式确定该预定二维码扫码步长。图11中示出了一个示例中确定预定二维码扫码步长的流程示意图,如图11所示,步骤S30确定预定二维码扫码步长的方式包括下述步骤S301至步骤S307。步骤S301:在图像采集设备的当前高度下,扫描预定单个二维码模板,获得单个二维码模板图像。具体应用时,可以是将图像采集设备固定好,使其与桌面的距离保持一定,即在图像采集设备的当前高度,先采集一个单个二维码模板上的二维码图像,一个具体应用示例中的采集的单个二维码模板图像的示意图如图12所示。步骤S302:对所述单个二维码模板图像进行二值化处理,获得二值化二维码模板图像。二值化处理的具体方式可以采用目前已有的任何方式进行,图12所示的单个二维码模板图像的二值化图像如图13所示。步骤S303:统计所述二值化二维码模板图像的黑色像素直方图。统计直方图的方式可以采用目前已有以及以后可能出现的任何方式进行,对图13的二值化图像统计得到的黑色像素直方图如图14所示。如图14所示,在进行直方图统计时,可以是按行和按列分别进行,即上述得到的黑色像素直方图可以包括行黑色像素直方图和列黑色像素直方图。步骤S304:对黑色像素直方图进行去噪处理,获得去噪后黑色像素直方图。图15示出了一个具体示例中的对直方图进行去噪处理的流程示意图,如图15所示,进行去噪处理的方式包括步骤S3041至步骤S3045。步骤S3041:将所述黑色像素直方图划分为预定等份,具体的划分的等份数可以结合实际需要进行设定。以等份数n=10为例,对图14中所示的黑色像素直方图划分等份后的示意图如图16所示。步骤S3042:将各等份分别按照相同的行/列方向均分为两个部分,统计各等份的两个部分的部分统计值以及各等份的初始统计值。结合图16所示,假设将每个等份划分为左右两半,将图16左侧的直方图的10等份从左到右标记为:等份1,等份2,等份3,等份4,......,等份10。经统计后,等份1、等份2、等份3、等份4......等份10的左半部分的部分统计值、右半部分的统计值、最大值、最小值这四个数值分别依次为:606、0、3340;0、0、0、0;0、0、0、0;0、0、0、0;0、0、0、0;0、662、80、0;2016、1950、87、41;1830、2071、88、26;228、131、35、3;105、739、53、3。从而图16中左侧的直方图的从左到右的初始统计值分别为:606、0、0、0、0、622、3966、3901、359、844。结合图16所示,假设将各等份划分为左右两半,将图16右侧的直方图的10等份从下到上标记为:等份1,等份2,等份3,等份4......等份10。统计后,等份1、等份2、等份3、等份4......等份10的左半部分的部分统计值、右半部分的统计值、最大值、最小值这四个值分别依次为:694、510、81、0;11、16、1、0;17、13、1、0;66、1480、750;1402、1476、75、45;1502、1490、78、48;703、178、64、3;242、130、12、1;23、31、2、1;116、198、8、3。从而图16中右侧的直方图的从下到上的初始统计值分别为:1204、27、30、1546、2878、2992、881、372、54、314。步骤S3043:当任意一个等份的两个部分统计值中的大值与该等份的两个部分统计值中的小值的比值大于第一比值阈值时,或者该等份中的最大值与最小值的比值大于第二比值阈值时,将该等份内的所有直方图的统计值设置为0。用rightHistSum表示直方图等份每一份中的右半部分的部分统计值,leftHistSum表示直方图等份每一份中的左半部分的部分统计值,用maxHist表示直方图等份每一份中的最大值,minHist表示直方图等份每一份中的最小值,a表示第一比例阈值,b表示第二比例阈值。则假设rightHistSum>leftHistSum,如果(rightHistSum-leftHistSum)/leftHistSum>a-1,或者说rightHistSum/leftHistSum>a,则将该等份内的所有直方图统计值设置为0。或者当maxHist/minHist大于等于b时,则将等份内的所有直方图统计值设置为0.步骤S3044:在任意一个等份的两个相邻等份的统计值为0时,将该等份内的所有直方图的统计值设置为0。假设将10等份中所有统计值可设置0的等份标记为‘1’,保持原统计数据所有统计值不变的等份标记为‘0’,则在该步骤S3044中,在存在符合标记模式为‘101’的直方图等份时,需要将‘101’中标记为‘0’的等份(即原来保持直方图统计数据的等份)也需要将其等份内的所有统计值置为0。步骤S3045:计算各统计值不为0的等份的初始统计值与相邻的统计值为0的等份的初始统计值的比值,将最大的比值对应的统计值不为0的等份之外的其他等份内的所有直方图的统计值设置为0,获得所述去噪后黑色像素直方图。结合上文所述,假设将10等份中可设置0的等份标记为1,保持原统计数据的等份标记为0。据此,图16左侧的直方图从左到右的等份1到等份10的标记结果分别为:1111110011该标记中没有101的模式,于是不需要去掉独立分块统计图。最后剩下的统计值不为0的等份包括等份7、等份8,其相邻的统计值为0的等份分别为等份6、等份9。从而等份7与等份6的初始统计值的比值(信噪比)为:z1=3966/622=6.37,等份8与等份9的初始统计值的比值(信噪比)为:z2=3901/359=10.87。z1、z2中的最大值为z2=10.87,从而将z1对应的等份7的统计值也设置为0,即采用上述标记方式,等份7的标记也标记为1。类似地,图16右侧的直方图从下到上的等份1到等份10的标记结果分别为:1111001111该标记中没有101的模式,于是不需要去掉独立分块统计图。最后剩下的统计值不为0的等份包括等份5、等份6,其相邻的统计值为0的等份分别为等份4、等份7。从而等份5与等份4的初始统计值的比值(信噪比)为:z1=2878/1546=1.86,等份6与等份7的初始统计值的比值(信噪比)为:z2=2992/881=3.39。z1、z2中的最大值为z2=3.39,从而将z1对应的等份5的统计值也设置为0,即采用上述标记方式,等份5的标记也标记为1。据此得到的对图16中所示的黑色像素直方图去噪后得到的去噪后黑色像素直方图的示意图如图17所示,其包括去噪后行黑色像素直方图和去噪后列黑色像素直方图。图17所示中,其实际上是去噪后保留的最大信噪比(如上所述的最大比值)的区域块,图17左侧保留的列统计范围为:384~509,图17右侧保留的行统计范围为:192~287。步骤S305:对所述去噪后黑色像素直方图进行行列坐标映射,获得映射为二值化图像后的局部图像块。针对图17所示的去噪后黑色像素直方图,对其进行行列坐标映射后,获得映射为二值化图像后的局部图像块如图18所示。步骤S306:对所述局部图像块进行图像条抽样,获得局部抽样图像块。图19示出了一个具体示例中的对局部图像块进行图像条抽样的流程示意图,如图19所示,其包括步骤S3061至步骤S3064。步骤S3061:在局部图像块的行方向的二分之一处截取第一行图像条快,该第一行图像条块的宽为边界区域内图像的宽度,高为第一预定像素高度阈值。针对图18所示的局部图像块,其截取的第一行图像条块如图20的20-1所示。图20的20-1所示中,是以第一预定像素高度阈值为10个像素点为例进行抽样,可以理解,该第一预定像素高度阈值可以调节,也可以设定为其他值。步骤S3062:在所述局部图像块的行方向的四分之一处和四分之三处,分别截取第二行图像条快、第三行图像条块,该第二行图像条块、第三行图像条块的宽为所述边界区域内图像的宽度,高为第二预定像素高度阈值。针对图18所示的局部图像块,其截取的第二行图像条块、第三行图像条块分别如图20的20-2、20-3所示。图20的20-2、20-3所示中,是以第二预定像素高度阈值为20个像素点为例进行抽样,可以理解的是,该第二预定像素高度阈值是可以调节的,也可以设定为其他值。步骤S3063:在局部图像块的列方向的二分之一处截取第一列图像条快,该第一列图像条块的宽为第一预定像素宽度阈值,高为边界区域内图像的高度。针对图18所示的局部图像块,其截取的第一列图像条块如图21的21-1所示。图21的21-1所示中,是以第一预定像素宽度阈值为10个像素点为例进行抽样,可以理解的是,该第一预定像素宽度阈值是可以调节的,也可以设定为其他值。其中,该第一预定像素宽度阈值与上述第一预定像素高度阈值通常情况下可以设定为相同值。步骤S3064:在所述局部图像块的列方向的四分之一处和四分之三处,分别截取第二列图像条块、第三列图像条块,该第二列图像条块、第三列图像条块的宽为第二预定像素宽度阈值,高为所述边界区域内图像的高度。针对图18所示的局部图像块,其截取的第二列图像条块、第三列图像条块分别如图21的21-2、21-3所示。图21的21-2、21-3所示中,是以第二预定像素宽度阈值为20个像素点为例进行抽样,可以理解的是,该第二预定像素宽度阈值是可以调节的,也可以设定为其他值。其中,该第二预定像素宽度阈值与上述第二预定像素高度阈值通常情况下可以设定为相同值。从而,最后得到的局部抽样图像块包括上述第一行图像条块、第二行图像条块、第三行图像条块、第一列图像条块、第二列图像条块及第三列图像条块。可以理解的是,上述步骤S3061至步骤S3064的执行可以不限定顺序,可以任何的顺序执行,也可以同时执行,只要能够得到上述3个行图像条块、3个列图像条块共计6个图像条块。当然,在实际技术应用中,也可以基于需要抽取其他按个数的图像条块。步骤S307:对各所述局部抽样图像块进行直方图统计,获得直方图统计结果,并根据直方图统计结果确定所述预定二维码扫码步长。图22示出了一个具体示例中基于局部抽样图像块确定二维码扫码步长的流程示意图,结合图22所示,该步骤S307可以包括下述步骤S3071至步骤S3074。步骤S3071:分别对第一行图像条块、第二行图像条块、第三行图像条块的黑色像素进行直方图统计,获得各行图像条块直方图,并将各行图像条块直方图映射到横坐标,确定映射到横坐标后连成的各线段的线段长度值。依次对图20所示的行图像条块进行直方图统计,得到的直方图统计图示意图如图23所示。针对图23所示的直方图统计图,其左中右三个直方图的线段长度值分别为:5、5、5;3、9、5、5;7、6、6。步骤S3072:分别对第一列图像条块、所述第二列图像条块、所述第三列图像条块的黑色像素进行直方图统计,获得各列图像条块直方图,并将各列图像条块直方图映射到纵坐标,确定映射到在纵坐标后连成的各线段的线段长度值。依次对图21所示的列图像条块进行直方图统计,得到的直方图统计图示意图如图24所示。针对图24所示的直方图统计图,其左中右三个直方图的线段长度值分别为:6、5、5、10;11、10;3、5、9、5、11。步骤S3073:确定映射到横坐标和纵坐标后的各线段的线段长度值中,各线段长度值的第一预定半径范围内的所有线段长度值的线段数目总数,获得各线段长度值对应的线段数目。例如,假设线段长度值为L的线段的数目为a,第一预定半径范围为2,线段长度值为L-1、L+1的线段的数目分别为b、c,线段长度值为L-2、L+2的线段的数目分别为d、e,从而在该示例中,该线段长度值L对应的线段数目为a+b+c+d+e。据此,结合图23、图24所示的直方图统计图的线段长度值,假设第一预定半径范围为2,获得的各线段长度值3、5、6、7、9、10、11对应的线段数目分别为11、15、13、15、7、6、6。步骤S3074:计算各线段长度值对应的线段数目,与该线段长度值的第二预定半径范围内的所有线段长度值对应的线段数目的和值,并根据最大的和值对应的该线段长度值确定所述预定二维码扫码步长。例如,假设线段长度值为L对应的线段数目为K1,第二预定半径范围为1,线段长度值为L-1对应的线段数目为K2,线段长度值为L+1对应的线段数目为K3,从而在该示例中,该线段长度值L对应的和值为K1+K2+K3。结合上表3中示出的线段数目,假设第二预定半径范围为1,可求得线段长度值6与其相距为1的线段长度值5、7三个线段长度值对应的线段数目的和值15+13+15=48为最大值。从而可以根据线段长度值6确定二维码扫码步长。在确定二维码扫码步长时,可以直接将该线段长度值作为二维码扫码步长。在具体的技术应用中,为了更大范围的检测二维码区域,提高检测二维码的能力,也可以是基于该线段长度值进行扩展,确定出多个二维码扫码步长,即上述二维码扫码步长的值包括至少一个。具体的扩展方式可以结合实际需要设定。可以理解的是,在具体的应用示例中,在改变了图像设备的高度之后,可以重新执行上述过程重新确定上述二维码扫码步长。基于与上述方法相同的思想,本实施例还提供一种批量扫描二维码的装置。图25中示出了一个实施例中的批量扫描二维码的装置的结构示意图,如图25所示,该实施例中的装置包括:图像采集模块251,用于采集图像,获得待检测图像;第一图像处理模块252,用于对待检测图像进行二值化处理,获得二值化图像;二维码扫描模块253,用于根据预定二维码扫码模式对所述二值化图像进行扫描,获得二维码模式点;聚类模块254,用于对二维码模式点进行聚类,获得聚类后的各聚类中心点;聚类中心距离确定模块255,用于分别计算各聚类中心点分别与除了自身之外的其他各聚类中心点的距离,确定各聚类中心点与除了自身之外的其他各聚类中心点的距离的最小距离值,并根据各聚类中心点对应的最小距离值确定聚类中心点间平均距离;剪切边长确定模块256,用于根据所述聚类中心点间平均距离确定二维码剪切边长;剪切模块257,用于根据所述二维码剪切边长以及所述聚类中心点,对所述待检测图像进行剪切,获得剪切后的分别包含单个二维码的各二维码局部图像。上述实施例中的方案,其在采集图像后,对图像进行二值化处理,并基于预定二维码扫码步长对二值化处理后的图像进行扫描,对扫描得到的二维码模式点进行聚类获得各聚类中心点,并基于聚类中心点的距离确定二维码剪切边长,然后结合二维码剪切边长以及聚类中心点对采集到的待检测图像进行剪切,获得包含单个二维码的各二维码局部图像,其通过聚类的方式,基于聚类中心点之间的距离确定二维码剪切边长,并结合二维码剪切边长和聚类中心点进行剪切,从而准确地对各二维码进行定位,提高了二维码定位和剪切的准确性。上述剪切边长确定模块256,可以在所述聚类中心点间平均距离的2倍小于或者等于预设剪切边长阈值时,将所述聚类中心点间平均距离的2倍作为所述二维码剪切边长,并在所述聚类中心点间平均距离的2倍大于所述预设剪切边长阈值时,将所述预设剪切边长阈值作为所述二维码剪切边长。可以理解的是,分割出各二维码图像的目的,是为了对二维码进行识别,因此,如图25所示,在一个具体示例中,本实施例中的装置还可以包括:解码模块258,用于分别对各所述二维码局部图像进行解码,获得解码后的各二维码信息。具体的对二维码进行解码的方式,可以采用目前已有以及以后可能出现的任何方式进行。在二维码扫描模块253根据预定二维码扫码模式对所述二值化图像进行扫描时,可以是基于预定的二维码扫码步长进行预定二维码扫码模式的扫描。据此,在一个具体示例中,如图25所示,本实施例中的装置还包括二维码扫码步长确定模块250,用以确定图像采集设备的当前高度下的上述二维码扫码步长。图26示出了一个具体示例中的二维码扫码步长确定模块的结构示意图,如图26所示,该二维码扫码步长确定模块250包括:图像扫描模块2501,用于在图像采集设备的当前高度下,扫描预定单个二维码模板,获得单个二维码模板图像;第二图像处理模块2502,用于对所述单个二维码模板图像进行二值化处理,获得二值化二维码模板图像;直方图统计模块2503,用于统计二值化二维码模板图像的黑色像素直方图;去噪模块2504,用于对所述黑色像素直方图进行去噪处理,获得去噪后黑色像素直方图;映射模块2505,用于对所述去噪后黑色像素直方图进行行列坐标映射,获得映射为二值化图像后的局部图像块;局部抽样模块2506,用于对所述局部图像块进行图像条抽样,获得局部抽样图像块;步长确定模块2507,用于对各所述局部抽样图像块进行直方图统计,获得直方图统计结果,并根据直方图统计结果确定所述预定二维码扫码步长。在一个具体应用示例中,该去噪模块2504可以包括:等份划分模块,用于将所述黑色像素直方图划分为预定等份;数量统计模块,用于将各等份分别按照相同的行/列方向均分为两个部分,统计各等份的两个部分的部分统计值以及各等份的初始统计值;第一去噪处理模块,用于在任意一个等份的两个部分统计值中的大值与该等份的两个部分统计值中的小值的比值大于第一比值阈值时,或者该等份中的最大值与最小值的比值大于第二比值阈值时,将该等份内的所有直方图的统计值设置为0;第二去噪处理模块,用于在任意一个等份的两个相邻等份的统计值为0时,将该等份内的所有直方图的统计值设置为0;第三去噪处理模块,用于计算各统计值不为0的等份的初始统计值与相邻的统计值为0的等份的初始统计值的比值,将最大的比值对应的统计值不为0的等份之外的其他等份内的所有直方图的统计值设置为0,获得所述去噪后黑色像素直方图。在一个具体应用示例中,该局部抽样模块2506可以包括:行局部抽样第一模块,用于在所述局部图像块的行方向的二分之一处截取第一行图像条快,该第一行图像条块的宽为边界区域内图像的宽度,高为第一预定像素高度阈值;行局部抽样第二模块,用于在局部图像块的行方向的四分之一处和四分之三处,分别截取第二行图像条快、第三行图像条块,该第二行图像条块、第三行图像条块的宽为所述边界区域内图像的宽度,高为第二预定像素高度阈值;列局部抽样第一模块,用于在所述局部图像块的列方向的二分之一处截取第一列图像条快,该第一列图像条块的宽为第一预定像素宽度阈值,高为边界区域内图像的高度;列局部抽样第二模块,用于在局部图像块的列方向的四分之一处和四分之三处,分别截取第二列图像条块、第三列图像条块,该第二列图像条块、第三列图像条块的宽为第二预定像素宽度阈值,高为所述边界区域内图像的高度;所述局部抽样图像块包括上述第一行图像条块、第二行图像条块、第三行图像条块、第一列图像条块、第二列图像条块、和第三列图像条块。在一个具体应用示例中,该步长确定模块2507可以包括:行条块统计模块,用于分别对所述第一行图像条块、所述第二行图像条块、所述第三行图像条块的黑色像素进行直方图统计,获得各行图像条块直方图,并将各行图像条块直方图映射到横坐标,确定映射到横坐标后连成的各线段的线段长度值;列条块统计模块,用于分别对所述第一列图像条块、所述第二列图像条块、所述第三列图像条块的黑色像素进行直方图统计,获得各列图像条块直方图,并将各列图像条块直方图映射到纵坐标,确定映射到在纵坐标后连成的各线段的线段长度值;线段数目确定模块,用于确定映射到横坐标和纵坐标后的各线段的线段长度值中,各线段长度值的第一预定半径范围内的所有线段长度值的线段数目总数,获得各线段长度值对应的线段数目;和值确定步长模块,用于计算各线段长度值对应的线段数目,与该线段长度值的第二预定半径范围内的所有线段长度值对应的线段数目的和值,并根据最大的和值对应的该线段长度值确定所述预定二维码扫码步长。在一个具体技术应用中,和值确定步长模块可以是将所述最大的和值对应的线段长度值确定为所述二维码扫码步长。在另一个具体技术应用中,和值确定步长模块可以根据所述最大的和值对应的线段长度值、预设波动范围,确定所述预定二维码扫码步长,所述预定二维码扫码步长的值包括至少一个。在一个具体技术示例中,本实施例的装置还可以包括二维码扫描初始化模块,用于获取所述预定二维码扫码步长,并根据预定二维码扫码步长进行扫描模式的初始化。具体的扫描模式的初始化包括:检测点为像素值为255的白色点,检测点的上下相邻的两个像素处各有一个像素值为255的白色点,距离检测点所述预定二维码扫码步长处各有辅助点,所述辅助点为像素值为0的黑色点,辅助点上下相邻的两个像素处各有一个像素值为0的黑色点。在一个具体技术示例中,本实施例的装置还可以包括去重模块,用于对所述二维码扫描模块获得的各所述二维码模式点进行去重处理。此时,上述聚类模块254是对去重模块去重处理后的二维码模式点进行聚类。具体的去重处理方式,可以采用目前已有以及以后可能出现的任何方式进行。图27示出了一个具体示例中的剪切模块的结构示意图,如图27所示,该剪切模块257包括:横坐标起始坐标确定模块2571,用于将聚类中心点的横坐标减去所述剪切宽度的一半后的第一横坐标值作为待剪切局部图像的横坐标起始坐标;横坐标结束坐标确定模块2572,用于将聚类中心点的横坐标加上所述剪切宽度的一半后的第二横坐标值作为待剪切局部图像的横坐标结束坐标;纵坐标起始坐标确定模块2573,用于将聚类中心点的纵坐标减去所述剪切高度的一半后的第一纵坐标值作为待剪切局部图像的纵坐标起始坐标;纵坐标结束坐标确定模块,用于将聚类中心点的纵坐标加上所述剪切高度的一半后的第二纵坐标值作为2574待剪切局部图像的纵坐标结束坐标;图块剪切模块2575,用于对所述待检测图像中的所述横坐标起始坐标、横坐标结束坐标、纵坐标起始坐标、纵坐标结束坐标之间的图块进行剪切,获得包含单个二维码的二维码局部图像。所述二维码剪切边长包括剪切高度和剪切宽度。其中,横坐标起始坐标确定模块2571,还可以在所述第一横坐标值小于0时,将所述横坐标起始坐标设置为0,并在所述第二横坐标值大于所述待检测图像的图像宽度时,将所述横坐标起始坐标前移所述第二横坐标值与所述待检测图像的图像宽度的差值的距离。纵坐标起始坐标确定模块2572,还可以在所述第一纵坐标值小于0时,将所述纵坐标起始坐标设置为0;并在所述第二纵坐标值大于所述待检测图像的图像高度时,将所述纵坐标起始坐标前移所述第二纵坐标值与所述待检测图像的图像高度的差值的距离。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1