一种用于柱形表面的二维码生成方法、系统及装置与流程

文档序号:16580961发布日期:2019-01-14 17:58阅读:449来源:国知局
一种用于柱形表面的二维码生成方法、系统及装置与流程

本发明涉及二维码技术领域,尤其涉及一种用于柱形表面的二维码生成方法、系统及装置。



背景技术:

二维条码(2-dimensionalbarcode),又称二维码,最早起源于日本,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。二维码中以qr码较为流行,它是1994年由日本dw公司发明。qr是quickresponse的缩写,即快速反应的意思,源自发明者希望qr码可让其内容快速被解码。

qr二维码是目前智能设备采集数据的一种廉价有效的方式。近几年,随着各种智能终端设备和应用系统的普及,二维码达到了惊人的普及。短短的这几年时间,随处可见的二维码渐渐融入了人们的生活里面:产品防伪、溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理,资金交易和快捷支付等等。

qr二维码生成过程分为几个基本步骤,首先是数据分析,确定编码的字符类型,按相应的字符集转换成符号字符;然后依次是选择纠错等级;确定数据编码;纠错编码;构造最终数据;将最终的数据序列按次序放入分块中;构造二维码图像的矩阵。由于有纠错机制,二维条形码不仅能防止错误,而且能纠正错误,即使条形码部分损坏,也能将正确的信息还原出来。

qr二维码生成方法有多种,网络上随处可见的一些通用的条码生成工具、网站或者应用工具的插件可以帮我们快速生成所需要的条码。特定需求的二维条码需要自行定制开发。目前,常见的开发平台都有自己特定的qr开发包,zxing是由google公司提供的一个开源、用java实现的多种格式的1d/2d条码图像处理库,也包含了其他语言调用的端口。该处理库可实现的条形码编码和解码。另外,supershareware官网提供的qrcode.jar包,也提供了与zxing类似的功能:输入需要编码的内容,生成平面二维条码,或者识别出二维条码图片的编码内容。

qr二维码解码过程:摄像头扫描黑白相间的二维码,利用点运算的阈值理论将采集到的图象变为二值图像,然后对其进行膨胀运算,对膨胀后的图象进行边缘检测得到条码区域的轮廓。然后经过一项灰度值计算对图像进行二值化处理。得到一幅标准的二值化图像后,进行网格采样,从而得到二维码的原始二进制序列值,对这些数据进行纠错和译码,最后根据条码的逻辑编码规则把这些原始的数据转换成数据。

通常情况下,生成的二维码粘贴表面是平面结构,但是,在实际生活中,很多物体是柱面形状,例如,食品追溯中的一些黄瓜等类型的农产品,学生用的文具。在这些物体表面粘贴普通的二维条码,虽然条码的读取设备具有一定的校验功能等,但是,当这些物体表面曲率明显时,读取粘贴这些物体表面qr条码会遇到困难,甚至不能正确读取。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种能提高识别率的用于柱形表面的二维码生成方法、系统及装置。

本发明所采取的技术方案是:

一种用于柱形表面的二维码生成方法,包括以下步骤:

获取平面二维码,并通过二维码生成工具获取平面二维码的编码内容;

根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标;

根据柱形二维码每个像素点的坐标,调用二维码生成工具生成得到柱形二维码。

作为所述的一种用于柱形表面的二维码生成方法的进一步改进,所述的根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标,这一步骤具体包括:

根据平面二维码的编码内容,得到平面二维码的像素点的坐标;

根据目标柱形物件的参数,计算与平面二维码对应的柱形二维码中每个像素点到中线的距离,得出映射关系;

以柱形二维码的中心为原点,计算得到柱形二维码每个像素点的坐标。

作为所述的一种用于柱形表面的二维码生成方法的进一步改进,所述的根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标,这一步骤具体还包括:

根据柱形二维码每个像素点的坐标,将坐标的原点转移到柱形二维码的左上角,并重新得到新的柱形二维码每个像素点的坐标。

作为所述的一种用于柱形表面的二维码生成方法的进一步改进,所述的计算与平面二维码对应的柱形二维码中每个像素点到中线的距离的具体公式为:

其中,r表示目标柱形物件的横切面的半径,l表示扫描摄像头距离目标柱形物件表面的最短距离,a表示平面二维码的1/2长度,d表示柱形二维码中每个像素点到中线的距离。

本发明所采用的另一个技术方案是:

一种用于柱形表面的二维码生成系统,包括:

获取单元,用于获取平面二维码,并通过二维码生成工具获取平面二维码的编码内容;

计算单元,用于根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标;

生成单元,用于根据柱形二维码每个像素点的坐标,调用二维码生成工具生成得到柱形二维码。

作为所述的一种用于柱形表面的二维码生成系统的进一步改进,所述的计算单元具体包括:

坐标获取单元,用于根据平面二维码的编码内容,得到平面二维码的像素点的坐标;

映射计算单元,用于根据目标柱形物件的参数,计算与平面二维码对应的柱形二维码中每个像素点到中线的距离,得出映射关系;

坐标计算单元,用于以柱形二维码的中心为原点,计算得到柱形二维码每个像素点的坐标。

作为所述的一种用于柱形表面的二维码生成系统的进一步改进,所述的计算单元具体还包括:

坐标平移单元,用于根据柱形二维码每个像素点的坐标,将坐标的原点转移到柱形二维码的左上角,并重新得到新的柱形二维码每个像素点的坐标。

作为所述的一种用于柱形表面的二维码生成系统的进一步改进,所述的计算与平面二维码对应的柱形二维码中每个像素点到中线的距离的具体公式为:

其中,r表示目标柱形物件的横切面的半径,l表示扫描摄像头距离目标柱形物件表面的最短距离,a表示平面二维码的1/2长度,d表示柱形二维码中每个像素点到中线的距离。

本发明所采用的再一个技术方案是

一种用于柱形表面的二维码生成装置,包括:

存储器,用于存放程序;

处理器,用于执行所述程序,所述程序使得所述处理器执行所述的用于柱形表面的二维码生成方法。

本发明的有益效果是:

本发明一种用于柱形表面的二维码生成方法、系统及装置根据平面二维码大小、目标柱形物件的尺寸以及扫描设备与目标柱形物件表面的距离,重新生成得到柱形二维码在粘贴在柱形物体表面后,能大大提到识别率,为使用条码标识柱形物体提供了很好的帮助,对食品追溯、物流追踪有很大的意义。

附图说明

图1是本发明一种用于柱形表面的二维码生成方法的步骤流程图;

图2是本发明一种用于柱形表面的二维码生成系统的模块方框图;

图3是本发明实施例的映射示意图;

图4是本发明实施例的像素点变换示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明:

参考图1,本发明一种用于柱形表面的二维码生成方法,包括以下步骤:

获取平面二维码,并通过二维码生成工具获取平面二维码的编码内容;

根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标;

根据柱形二维码每个像素点的坐标,调用二维码生成工具生成得到柱形二维码。

其中,编码内容为一个二维数组,每一个元素代表了平面二维码的一个像素点。

进一步作为优选的实施方式,所述的根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标,这一步骤具体包括:

根据平面二维码的编码内容,得到平面二维码的像素点的坐标;

根据目标柱形物件的参数,计算与平面二维码对应的柱形二维码中每个像素点到中线的距离,得出映射关系;

以柱形二维码的中心为原点,计算得到柱形二维码每个像素点的坐标。

进一步作为优选的实施方式,所述的根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标,这一步骤具体还包括:

根据柱形二维码每个像素点的坐标,将坐标的原点转移到柱形二维码的左上角,并重新得到新的柱形二维码每个像素点的坐标。

进一步作为优选的实施方式,所述的计算与平面二维码对应的柱形二维码中每个像素点到中线的距离的具体公式为:

其中,r表示目标柱形物件的横切面的半径,l表示扫描摄像头距离目标柱形物件表面的最短距离,a表示平面二维码的1/2长度,d表示柱形二维码中每个像素点到中线的距离。

本发明实施例中,平面二维码,表示普通使用的二维条码,该条码的编码解码可以直接利用现有的工具和算法。柱形二维码,表示用于粘贴到柱形物体的条码,这个条码粘贴到指定半径的物体表面,能在指定的距离被条码扫描设备正确读取,该条码也是本发明所需要获取的条码。本实施例中的二维码生成工具采用zxing.jar或者qrcode.jar。

参考图3,本实施例中,平面二维码像素点与柱形二维码像素点存在着映射关系,在图中,圆o是柱形物体的横切面,o点是圆心,圆的半径是r。b点是二维条码扫描摄像头。c点是条码中心,也是条码贴在柱形物体表面的中心点。d点是条码的任意一个像素点,a点是条码点张贴到物体表面的点。摄像头距离物体表面距离l,cd的长度是a。be是切线,e是切点。

由三角函数的正切定义可知:

be是圆的切线,因此∠oeb=π/2,∠3是∠oeb的内角,因此,∠3>π/2,由三角形的正弦定理可知:

由于三角形的内角和为π,结合公式1和公式2可知:

∠1=π-∠2-∠3

的长度为:

即柱形二维码中每个像素点到中线的距离为:

柱形二维码的像素点水平方向应该由原来的距离及cd线段长度条码中线拉伸为弧的长度。由于是粘贴在柱形物体表面,条码的垂直方向不变。图4是平面二维条码转换成柱形二维条码后的像素点的变化示意图。

平面二维条码上的任意一点a(x,y),对应的柱形二维条码像素点a’(x’,y’),根据公式3可知,任意一点a’的纵坐标不变,横坐标x’的是:

y'=y

其中,柱形二维条码最左上角的像素点o’的坐标(xo’,yo’)的坐标为:

由于在打印输出条码的公式里,坐标原点是条码的左上角,因此,为了能利用google的条码生成工具生成条码,需要将上节所展示的坐标系进行平移,将坐标原点从条码中心点o移向柱形条码的最左上角o’,坐标原点移动后每一个像素点的坐标(x”,y”)根据解析几何的平移定律可知:

x”=x'+xo'

y”=y+yo'

因此,坐标平移后像素点的坐标值为:

本实施例中,用户在内容框中输入条码的内容和底部文字,输入条码的边长,圆柱体半径和扫描器距离物体表面的距离。点击生成,在界面的右边上部分可生成正常的二维条码,下部分生成适用于条码、柱形半径和摄像头距离的柱形二维码,本实施例中生成的柱形二维码有适当的拉伸,并且随着离开中心区域越远,拉伸越多。

参考图2,本发明一种用于柱形表面的二维码生成系统,包括:

获取单元,用于获取平面二维码,并通过二维码生成工具获取平面二维码的编码内容;

计算单元,用于根据平面二维码的编码内容,计算平面二维码在目标柱形物件表面的映射关系,进而得到柱形二维码每个像素点的坐标;

生成单元,用于根据柱形二维码每个像素点的坐标,调用二维码生成工具生成得到柱形二维码。

进一步作为优选的实施方式,所述的计算单元具体包括:

坐标获取单元,用于根据平面二维码的编码内容,得到平面二维码的像素点的坐标;

映射计算单元,用于根据目标柱形物件的参数,计算与平面二维码对应的柱形二维码中每个像素点到中线的距离,得出映射关系;

坐标计算单元,用于以柱形二维码的中心为原点,计算得到柱形二维码每个像素点的坐标。

进一步作为优选的实施方式,所述的计算单元具体还包括:

坐标平移单元,用于根据柱形二维码每个像素点的坐标,将坐标的原点转移到柱形二维码的左上角,并重新得到新的柱形二维码每个像素点的坐标。

进一步作为优选的实施方式,所述的计算与平面二维码对应的柱形二维码中每个像素点到中线的距离的具体公式为:

其中,r表示目标柱形物件的横切面的半径,l表示扫描摄像头距离目标柱形物件表面的最短距离,a表示平面二维码的1/2长度,d表示柱形二维码中每个像素点到中线的距离。

本发明一种用于柱形表面的二维码生成装置,包括:

存储器,用于存放程序;

处理器,用于执行所述程序,所述程序使得所述处理器执行所述的用于柱形表面的二维码生成方法。

从上述内容可知,本发明根据平面二维码大小、目标柱形物件的尺寸以及扫描设备与目标柱形物件表面的距离,重新生成得到柱形二维码在粘贴在柱形物体表面后,能大大提到识别率,为使用条码标识柱形物体提供了很好的帮助,对食品追溯、物流追踪有很大的意义。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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