技术领域
[0001] 本
发明涉及二维码技术领域,具体涉及一种用于软件测试的生成污损二维码的方法。
背景技术
[0002] 二维码本身是一种容错性比较强的码,在受到污损时可以通过冗余信息还原完整内容,从而可以正确识别。在对扫码产品进行测试时,需要了解其对污损区域不同,污损程度不同的二维码的识别能
力。
[0003] 现有的一些二维码污损测试主要通过以下两种方式获得污损二维码:
[0004] 1.自然受损:
[0005] 二维码图片在使用中受损,将污损照片收集
整理用于测试。
[0006] 这种方法获取的污损码的污损程度具有很大的不确定性,需要采集不同受损情况的二维码,可能会有大量污损类似的情况出现。
[0008] 识别二维码不同部位,选取要污染的区域做数字图像处理。
[0009] 这种方法实际上是先识别二维码获得矩阵信息,根据二维码结构选择要污损的部位进行处理,处理后重新生成污损图片提供给测试使用,可以实现对污损部位和污损程度的控制。但是,先识别图片再实现污损,流程繁琐。
发明内容
[0010] 本发明的目的在于克服
现有技术中的不足之处而提供一种生成可以控制污损方式和污损程度的二维码的方法来实现软件测试中对扫码识别性能的测试。
[0011] 为实现以上目的,本发明通过以下技术方案予以实现:
[0012] 一种用于软件测试的生成污损二维码的方法,按以下步骤执行,
[0013] 步骤S01:根据需要测试的二维码污损情况,创建污损情况对应参数及其数值表;
[0014] 步骤S02:编写代码,使用zxing开源库生成正常二维码矩阵;
[0015] 步骤S03:根据二维码国家标准,
定位需要污损部位在图片矩阵中的坐标,对污损部位进行污化处理。
[0016] 进一步的,步骤S03中定位污损部位有以下情况:
[0017] 1)版本信息污损;2)边界污损;3)定位符污损;4)校正图形污损;5)寻像图形污损。
[0018] 进一步的,步骤S03中定位的污损部位可进行
叠加生成污损码。
[0019] 与现有技术相比,本发明的有益效果是:
[0020] 1.本发明由于依据二维码结构进行污损处理,可以根据测试需求控制污损部位和污损程度。
[0021] 2.且本发明由于对污损二维码的污损情况进行分类,可以用于单一污损情况的识别测试和叠加污损情况的识别测试。
[0022] 3.本发明在生成图片前先对矩阵做处理,避免生成图片再转
化成矩阵的繁琐过程。
附图说明
[0023] 为了更清楚地说明本发明
实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024] 图1为二维码的结构示意图;
[0025] 图2为版本信息污损的二维码;
[0026] 图3为边界污损的二维码。
具体实施方式
[0027] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 下面结合附图,对本发明的技术方案进行说明:
[0029] 本发明一种于软件测试的生成污损二维码的方法,按以下步骤执行:
[0030] 步骤S01:根据需要测试的二维码污损情况,创建污损情况对应参数及其数值表;
[0031] 步骤S02:编写代码,使用zxing开源库生成正常二维码矩阵;
[0032] 步骤S03:根据二维码国家标准,定位需要污损部位在图片矩阵中的坐标,对污损部位进行污化处理;使二维码部分有效信息被遮盖或产生畸变。
[0033] 进一步的,污化处理包括填充、灰度化、
颜色渐变、
腐蚀、膨胀等操作。
[0034] 步骤S03中定位污损部位有以下情况:
[0035] 1)版本信息污损:版本信息为18位,在符号中出现两次提供冗余,6行x3列模
块组成的版本信息放在定位图像上面,右侧紧邻右上
角位置探测图形的分隔符,3行x6列模块组成的版本信息放在定位图像的左侧,下边紧邻左下角位置探测图形的分隔符。将两个矩形模块全部填充为黑色。
[0036] 2)边界污损:标准中规定标准QR码(Ver1-40)四周应有宽4个单位、微型QR码四周应有宽2个单位的区域颜色等效于QR码中白色点,其中不能有图样或标记,以保证QR码清晰可识别。在空白区四周边缘添加宽度为1个单位,颜色等效于QR码中黑色点的区域,形成黑色边界。
[0037] 3)定位符污损:定位符为一单位宽的黑白交替点带,在符号中出现两次,由黑色起始和结束,用于指示标识
密度和确定
坐标系,位于第6行的定位符在左上和右上两个位置探测图形之间,位于第6列的定位符在左上和左下两个位置之间。将两条点带全部填充为黑色。
[0038] 4)校正图形污损:只有Version 2及以上的QR码有校正图形。校正图形用于进一步校正坐标系。校正图形的数量取决于版本,定位校正图形的部位填充为黑色。
[0039] 5)寻像图形污损:寻像图形包括三个相同的位置探测图形,位于QR码的左上,右上和左下角。每个位置探测图形有三个重叠的同心正方形组成,位置探测图形和编码区域之间有宽度为1个模块的分隔符。设置右上,左上或左下大于8x8的区域的颜色等效于QR码中的黑色点,形成寻像图形污损。
[0040] 为更好的讲述本发明,以下为本发明的具体实施例。
[0041] 实施例1:
[0042] 如图1所示,为本发明的第一个实施例,此时生成版本信息污损的二维码,使用zxing开源库创建二维码矩阵,对矩阵定位图像上面的6行x3列模块组成的版本信息和定位图像的左侧的3行x6列模块组成的版本信息通过zxing的setRegion()方法设置成颜色等效于QR码中黑色点,将矩阵写入Bitmap图片获得污损二维码。
[0043] 实施例2:
[0044] 如图2所示,为本发明的第二个实施例,此时生成边界污损的二维码,使用zxing开源库创建二维码矩阵,对矩阵空白区四周增加宽度为一个单位的边框,通过zxing的setRegion()方法设置成颜色等效于QR码中黑色点,将矩阵写入Bitmap图片获得污损二维码。
[0045] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0046] 以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行
修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。