一种圆‑棱柱组合体表面的二维码的生成和采集方法与流程

文档序号:11952184阅读:167来源:国知局
一种圆‑棱柱组合体表面的二维码的生成和采集方法与流程

本发明涉及二维码的打印和识别领域,特别是指一种圆-棱柱组合体表面的二维码的生成和采集方法。



背景技术:

目前,随着移动互联网高速发展,随着3G/4G移动网络环境下智能手机和平板电脑等移动智能终端的快速普及以及二维码编码解码技术的相对成熟,二维码应用不再受到时空和硬件设备的局限因而对人们日常生活产生的影响日益深远。二维码被广泛应用于各个行业,如物流业、生产制造业、交通、安防、票证等行业。而且,随着全球信息通信技术的迅猛发展,以手机为终端的各种应用不断涌现,在未来,手机无疑将成为移动商务赖以发展的最重要的终端之一,而手机二维码的发展将在移动商务的发展中将扮演重要角色。

但是,当前二维码的印刷和放置受到一定限制,在目前的技术中,需要将二维码印制在平面或近似平面的印品上、或显示在平面的终端显示屏上,才能使得用户移动终端中的扫码APP可以识别。但如果需要将二维码图案印制或者显示在非平面的物体表面上,尤其是圆-棱柱组合体表面,如何在不改变当前的扫码软件的解码功能的前提便可扫码成功,成为了一个有待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提出一种在圆-棱柱组合体表面打印二维码,并且在不改变当前的扫码软件的解码功能的前提便可扫码成功的二维码的生成和采集方法。

基于上述目的本发明提供的一种圆-棱柱组合体表面的二维码的生成和采集方法,所述圆-棱柱组合体表面包括圆柱面以及圆柱面两侧的第一平面和第二平面,包括:

获取所述原始二维码的宽度,以及所述圆-棱柱组合体表面中第一平面、圆柱面和第二平面在标准平面中的投影的宽度比例,其中,所述标准平面为所述圆柱面中线处的切面的平行平面;

根据所述宽度比例将所述原始二维码分割为对应部分,对所述第一平面和第二平面对应的原始二维码部分分别做横向线性拉伸,得到所述第一平面和所述第二平面的预形变二维码部分,对所述圆柱面对应的原始二维码部分做横向非线性拉伸,得到所述圆柱面的预形变二维码部分,将所述第一平面和所述第二平面的预形变二维码部分以及所述圆柱面的预形变二维码部分组合成完整的预形变二维码,打印在所述圆-棱柱组合体表面的对应位置处;

使用采集设备对所述完整的预形变二维码沿垂直所述标准面的方向进行图像采集,得到所述完整的预形变二维码对应的采集图像,所述采集图像与所述原始二维码相同。

进一步的,所述圆-棱柱组合体表面的二维码的生成包括:

将所述原始二维码在竖直高度上切成单位厚度为1像素点的行像素;

对每一行所述像素进行相应的所述横向线性拉伸和横向非线性拉伸,得到所述圆-棱柱组合体表面上的预形变二维码的与所述行像素对应的预形变行像素;

遍历整个所述的预形变二维码图像,根据与原始二维码图像的对应关系,对预形变二维码图像进行赋值,从而得到预形变二维码图像。

进一步的,对于所述行像素,其进一步包括第一段直线段、第二段直线段和弧线段,所述对每一行所述像素进行相应的所述横向线性拉伸和横向非线性拉伸的过程为对所述第一段直线段和第二段直线段进行横向线性拉伸,对所述弧线段进行横向非线性拉伸,具体为:

将原始二维码中的第一直线段的像素进行编号;

得到第一平面与第二平面之间的较小的角度,计算其角度的正弦作为第一比例值,将原始二维码中的第一直线段长度除以第一比例值,可以得到预形变二维码中第一直线段的长度。将所述预形变二维码中第一直线段的像素点进行编号。

将预形变二维码中所述第一直线段的编号乘以所述第一比例值,然后四舍五入取整,得到对应的原始二维码中第一直线段的像素点编号。从而得到预形变二维码第一直线段中像素点与原始二维码第一直线段像素点的对应关系;

根据所述的像素点对应关系将原始二维码中第一直线段中的像素点的像素赋值在预形变二维码部分的第一直线段的对应编号的像素点,生成预形变二维码第一直线段;

对所述第二段直线段对应的原始二维码部分做如对所述第一段直线段的所述横向线性拉伸,生成第二段直线段的预形变二维码第二行像素段;

以所述弧线段的圆心为原点,垂直所述弧线段对称轴的直线为坐标轴,以像素点为单位对所述弧线段对应的原始二维码部分的像素点进行编号,;

定义第二比值的函f(x)=x/sinx;其中,x∈(0,θ/2],θ为所述弧线段的圆心角的弧度值;

将所述弧线段对应的原始二维码部分的像素点的编号乘所述第二比值,然后四舍五入取整,可以得到预形变二维码中第二直线段的长度。将所述预形变二维码中第二直线段的像素点进行编号,从而得到预形变二维码第二直线段中像素点与原始二维码第二直线段像素点的对应关系;

根据所述的像素点对应关系将原始二维码中第二直线段中的像素点的像素赋值在预形变二维码部分的第二直线段的对应编号的像素点,生成预形变二维码第二直线段;

将所述预形变二维码第一行像素段、预形变二维码第二行像素段和预形变二维码弧线段像素段组成所述行像素对应的预形变二维码行像素;

对每一个所述行像素均执行前述过程,将生成的多个所述预形变二维码行像素组合成所述完整的预形变二维码。

进一步的,所述对所述第一平面和第二平面对应的原始二维码部分分别做横向线性拉伸包括:

获取所述原始二维码的像素点的像素值,将所述第一平面对应的原始二维码部分的像素点进行编号;

计算得到所述第一平面的宽度和所述第一平面在所述标准平面中的投影宽度的比值,作为第一比值;

将所述第一平面对应的原始二维码部分的像素点的编号乘所述第一比值,然后四舍五入取整,得到对应的所述第一平面的预形变二维码部分的像素点的编号;

将所述第一平面对应的原始二维码部分的像素点的像素值赋值在所述第一平面的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述第一平面的预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成第一平面的预形变二维码部分;

对所述第二平面对应的原始二维码部分做如对所述第一平面相同的所述横向线性拉伸,生成第二平面的预形变二维码部分;

所述对所述圆柱面对应的原始二维码部分做横向非线性拉伸包括:

以所述圆柱面的一个截面的圆心为原点,垂直所述截面对称轴的直线为坐标轴,以像素点为单位对所述圆柱面对应的原始二维码部分的像素点进行编号;

定义第二比值的函数f(x)=x/sinx;其中,x∈(0,θ/2],θ为所述圆柱面的截面的圆心角的弧度值;

将所述圆柱面对应的原始二维码部分的像素点的编号乘所述第二比值,然后四舍五入取整,得到对应的所述圆柱面的预形变二维码部分的像素点的编号;

将所述圆柱面对应的原始二维码部分的像素点的像素值赋值在所述圆柱面的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述圆柱面的预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成圆柱面的预形变二维码部分。

进一步的,所述圆-棱柱组合体表面的二维码的生成过程包括:

将所述原始二维码一列像素进行相应的横向线性拉伸或横向非线性拉伸,得到所述圆-棱柱组合体表面上的预形变二维码的与所述列像素对应的列像素;

遍历整个所述的预形变二维码图像,根据与原始二维码图像的对应关系,对预形变二维码图像进行赋值,从而得到预形变二维码图像。

进一步的,当所述一种圆-棱柱组合体表面左右对称时,仅需计算对称轴一侧的预形变二维码的像素点编号,根据所述编号对所述预形变二维码的像素点赋值,并按照同样的赋值方法对对称轴另一侧的预形变二维码的像素点进行赋值。

从上面所述可以看出,本发明提供的一种圆-棱柱组合体表面的二维码的生成和采集方法,根据棱柱面和圆柱面的比例将原始二维码分割为对应部分,并对棱柱面对应的二维码部分做横向线性拉伸,得到棱柱面的预形变二维码部分,对圆柱面对应的原始二维码部分做横向非线性拉伸,得到所述圆柱面的预形变二维码部分,并组合成完整的预形变二维码,打印在圆-棱柱组合体表面的对应位置处;使用采集设备对所述完整的预形变二维码沿垂直所述标准面的方向进行图像采集,得到所述完整的预形变二维码对应的采集图像;所述采集图像与所述原始二维码相同。在不改变当前的扫码软件的解码模块情况下实现二维码的读取和识别,拓宽了二维码的应用场合,特别在一些小尺寸的、表面为圆-棱柱组合体表面的商品上可得到相关应用。

附图说明

图1为本发明圆-棱柱组合体表面的二维码的生成和采集方法的一个实施例的流程图;

图2为本发明圆-棱柱组合体表面的二维码的生成和采集方法的另一个实施例的流程图;

图3为本发明圆-棱柱组合体表面的二维码的生成和采集方法的再一个实施例的流程图;

图4为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中预形变二维码打印载体示意图;

图5为本发明圆-棱柱组合体表面的二维码的生成和采集方法的载体截面示意图;

图6为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中采用的原始二维码图片;

图7为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中采用的原始二维码拉伸后生成的预形变二维码图片。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

本发明的实施例提供一种圆-棱柱组合体表面的二维码的生成和采集方法,所述圆-棱柱组合体表面包括圆柱面以及圆柱面两侧的第一平面和第二平面,,包括:

获取所述原始二维码的宽度,以及所述圆-棱柱组合体表面中第一平面、圆柱面和第二平面在标准平面中的投影的宽度比例,其中,所述标准平面为所述圆柱面中线处的切面的平行平面。

并根据所述宽度比例将所述原始二维码分割为对应部分,对所述第一平面和第二平面对应的原始二维码部分分别做横向线性拉伸,得到所述第一平面和所述第二平面的预形变二维码部分,对所述圆柱面对应的原始二维码部分做横向非线性拉伸,得到所述圆柱面的预形变二维码部分,将所述第一平面和所述第二平面的预形变二维码部分以及所述圆柱面的预形变二维码部分组合成完整的预形变二维码,打印在所述圆-棱柱组合体表面的对应位置处。

当使用采集设备对所述完整的预形变二维码沿垂直所述标准面的方向进行图像采集,得到所述完整的预形变二维码对应的采集图像,所述采集图像与所述原始二维码相同。

如图1所示,为本发明圆-棱柱组合体表面的二维码的生成和采集方法的一个实施例的流程图。在本实施例中,所述圆-棱柱组合体表面的二维码的生成和采集方法包括以下步骤:

步骤101:获取所述原始二维码,并测量其宽度。

步骤102:选取圆柱面中线处的切面的平行平面为标准平面,并计算圆-棱柱组合体表面中第一平面、圆柱面和第二平面在标准平面中的投影的宽度比例。

步骤103:根据圆-棱柱组合体表面中第一平面、圆柱面和第二平面在标准平面中的投影的宽度比例将原始二维码分割为对应部分。

步骤104:对所述第一平面和第二平面对应的原始二维码部分分别做横向线性拉伸,得到所述第一平面和所述第二平面的预形变二维码部分,对所述圆柱面对应的原始二维码部分做横向非线性拉伸,得到所述圆柱面的预形变二维码部分。

步骤105:将所述第一平面和所述第二平面的预形变二维码部分以及所述圆柱面的预形变二维码部分组合成完整的预形变二维码,打印在所述圆-棱柱组合体表面的对应位置处。

步骤106:当使用采集设备对所述完整的预形变二维码沿垂直所述标准面的方向进行图像采集,得到所述完整的预形变二维码对应的采集图像,所述采集图像与所述原始二维码相同。

本发明通过张贴二维码的圆-棱组合柱体的空间几何关系约束,按照保形投影逆映射的要求,将正常的二维码图片预先进行线性和非线性拉伸,得到预形变二维码。预形变的二维码经过打印以后张贴到圆-棱组合柱体表面,通过二维码扫描终端,在不改变当前的扫码软件的解码模块情况下实现二维码的读取和识别,拓宽了二维码的应用场合,特别在一些小尺寸的、表面为圆-棱柱组合体表面的商品上可得到相关应用。

如图2所示,为本发明圆-棱柱组合体表面的二维码的生成和采集方法的另一个实施例的流程图。在本实施例中,圆-棱柱组合体表面的二维码的生成和采集方法包括以下步骤:

步骤201:获取原始二维码,测量原始二维码的宽度,并对原始二维码的像素点进行编号,选取标准平面。

步骤202:将所述原始二维码在竖直高度上切成单位厚度为1像素点的行像素,对单一行像素进行操作,对于所述行像素,其进一步包括第一段直线段、第二段直线段和弧线段。

步骤203:对第一直线段和第二直线段对应的行像素部分进行横向的线性拉伸,具体过程包括步骤204和步骤205。

步骤204:计算得到所述第一段直线段的宽度和所述第一段直线段在所述标准平面中的投影宽度的比值,作为第一比值。

步骤205:将所述第一段直线段对应的原始二维码部分的像素点的编号乘所述第一比值,然后四舍五入取整,得到对应的所述第一段直线段的预形变二维码部分的像素点的编号。将所述第一段直线段对应的原始二维码部分的像素点的像素值赋值在所述第一段直线段的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述第一段直线段预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成第一段直线段对应的预形变二维码第一行像素段。对所述第二段直线段对应的原始二维码部分做如对所述第一段直线段的所述横向线性拉伸,生成第二段直线段的预形变二维码第二行像素段。

步骤206:对弧线段对应的行像素部分进行横向的非线性拉伸,具体过程包括步骤207和步骤208。

步骤207:以所述弧线段的圆心为原点,垂直所述弧线段对称轴的直线为坐标轴,以像素点为单位对所述弧线段对应的原始二维码部分的像素点进行编号。定义第二比值的函数f(x)=x/sinx;其中,x∈(0,θ/2],θ为所述弧线段的圆心角的弧度值。

步骤208:将所述弧线段对应的原始二维码部分的像素点的像素值赋值在所述弧线段的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述弧线段的预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成弧线段对应的预形变二维码的弧线段像素段。

步骤209:将预形变二维码第一行像素段、预形变二维码第二行像素段和预形变二维码弧线段像素段组成所述行像素对应的预形变二维码行像素。

步骤210:对每一行所述像素进行相应的所述横向线性拉伸和横向非线性拉伸,得到所述圆-棱柱组合体表面上的预形变二维码的与所述行像素对应的预形变行像素;遍历整个所述的预形变二维码图像,根据与原始二维码图像的对应关系,对预形变二维码图像进行赋值,从而得到预形变二维码图像。

如图3所示,为本发明圆-棱柱组合体表面的二维码的生成和采集方法的再一个实施例的流程图。在本实施例中,圆-棱柱组合体表面的二维码的生成和采集方法包括以下步骤:

步骤301:获取原始二维码,测量原始二维码的宽度,并对原始二维码的像素点进行编号,选取标准平面。所示标准平面为圆柱面中线处的切面的平行平面。对原始二维码的像素点从左到右进行编号,也可以从右到左进行编号,为了计算方便,通常从1开始对像素点进行编号。

步骤302:将原始二维码根据圆-棱柱组合面在标准平面中投影宽度的比例分割,即将原始二维码分割为第一平面、第二平面和圆柱面对应的部分。

步骤303:分别对第一平面部分对应的原始二维码和第二平面部分对应的原始二维码做横向线性拉伸,具体过程包括步骤304和步骤305。

步骤304:计算得到所述第一平面的宽度和所述第一平面在所述标准平面中的投影宽度的比值,作为第一比值;计算得到所述第二平面的宽度和所述第二平面在所述标准平面中的投影宽度的比值,作为第二比值。

步骤305:将所述第一平面对应的原始二维码部分的像素点的编号乘所述第一比值,然后四舍五入取整,得到对应的所述第一平面的预形变二维码部分的像素点的编号;将所述第一平面对应的原始二维码部分的像素点的像素值赋值在所述第一平面的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述第一平面的预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成第一平面的预形变二维码部分;对所述第二平面对应的原始二维码部分做如对所述第一平面相同的所述横向线性拉伸,生成第二平面的预形变二维码部分。

步骤306:对圆柱面部分对应的原始二维码做横向非线性拉伸,具体过程包括步骤307和步骤308。

步骤307:以所述圆柱面的一个截面的圆心为原点,垂直所述截面对称轴的直线为坐标轴,以像素点为单位对所述圆柱面对应的原始二维码部分的像素点进行编号;

定义第二比值的函数f(x)=x/sinx;其中,x∈(0,θ/2],θ为所述圆柱面的截面的圆心角的弧度值。

步骤308:将所述圆柱面对应的原始二维码部分的像素点的编号乘所述第二比值,然后四舍五入取整,得到对应的所述圆柱面的预形变二维码部分的像素点的编号;将所述圆柱面对应的原始二维码部分的像素点的像素值赋值在所述圆柱面的预形变二维码部分的对应编号的像素点上,并将所述相邻的所述圆柱面的预形变二维码部分的像素点的编号之间的像素点的像素值设定为后一编号对应像素点的像素值,生成圆柱面的预形变二维码部分。

步骤309:将第一平面的预形变二维码部分、第二平面的预形变二维码部分和圆柱面的预形变二维码部分组合成完整的预形变二维码。

作为本发明的一个实施例,所述圆-棱柱组合体表面的二维码的生成过程还可以为:

将所述原始二维码一列像素进行相应的横向线性拉伸或横向非线性拉伸,得到所述圆-棱柱组合体表面上的预形变二维码的与所述列像素对应的列像素;

遍历整个所述的预形变二维码图像,根据与原始二维码图像的对应关系,对预形变二维码图像进行赋值,从而得到预形变二维码图像。

作为本发明的另一个实施例,当所述一种圆-棱柱组合体表面左右对称时,仅需计算对称轴一侧的预形变二维码的像素点编号,根据所述编号对所述预形变二维码的像素点赋值,并按照同样的赋值方法对对称轴另一侧的预形变二维码的像素点进行赋值。

如图4所示,为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中预形变二维码打印载体示意图。所述预形变二维码打印载体包括第一平面ABB’A’、圆柱面BCC’B’和第二平面CDD’C’,将原始二维码拉伸后,打印在圆-棱柱组合体侧面ADD’A’上。

如图5所示,为本发明圆-棱柱组合体表面的二维码的生成和采集方法的载体截面示意图。

根据几何投影关系可知,二维码的高度在预形变时不变,即在纵向上图像并没有产生伸缩形变。因此,只需考虑与二维码图像等高的一段纵向载体即可。将载体在高度上切成单位厚度为像素点的高度为1的薄片,个数为h,因此可知载体可由h个如图5所示图形组成。

于是每个薄片上找出正常二维码的行像素与载体表面相应的行的投影映射关系进行行像素的计算,即可计算出整个二维码与载体的逆映射关系,从而计算出形变后的二维码图像。

如图5所示,其中lAD为二维码的宽度,即lAD可表示为二维码图像的行像素,根据映射关系可知,为载体上的与lAD对应的行像素,于是所表示的是形变后的二维码图像的行像素。因此根据上述原理可知,形变后的图像可通过四步得出:

第1步:设定二维码图像在三个载体面中所占比例即lAB、lBC、lCD(可相应求出lHG、lFE的大小),其值可根据要求自由设定;

第2步:根据已知的二维码的尺寸和载体的直径、棱长等信息,求出lHG、lFE的长度,从而确定形变后二维码的尺寸大小,然后对载体以一个像素点的间隔进行纵向切片并任意选取其中一片如图5所示,进行下一步计算,计算如下:

lB′O=lBC/2=(lAD-lAB-lCD)/2 (1-1)

<mrow> <mi>&theta;</mi> <mo>=</mo> <mi>arcsin</mi> <mrow> <mo>(</mo> <mfrac> <msub> <mi>l</mi> <mrow> <msup> <mi>B</mi> <mo>&prime;</mo> </msup> <mi>O</mi> </mrow> </msub> <mi>r</mi> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

lHG=lAB/sin(β),lFE=lCD/sin(β) (1-5)

第3步:设x1、x2点分别为lFE上的任意二点,y1、y2便是移动的点x1、x2映射在二维码图像中的二个行像素点,载体表面映射到二维码图像上为y1到二维码图像行像素的圆左边缘点B的距离,载体表面映射到二维码图像上为到二维码图像行像素的圆右边缘点C的距离,载体左棱与右堎算法相同在此不做累述。

当x1点向O’点移动时,弧长与圆心角γ(弧度制)以及的关系为:

lO″O=r·sinγ (1-8)

lB′O″=lB′O-lO″O (1-9)

于是可以得到,行像素B'O”的映射弧线。

当x2点向E点移动时,长度与夹角β以及的关系为:

<mrow> <msub> <mi>l</mi> <mrow> <msub> <mi>Cy</mi> <mn>2</mn> </msub> </mrow> </msub> <mo>=</mo> <msub> <mi>l</mi> <mrow> <msub> <mi>Fx</mi> <mn>2</mn> </msub> </mrow> </msub> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&beta;</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

由以上关系可知,当x1点沿着向中心O处右移动时,要得到对应原图二维码行像素映射的像素点y1、y2,只需要获得已映射的长度和对应原图的长度,当点x2沿着向点右移动时,要得到对应原图二维码行像素映射的像素点,只需获得已映射的长度和对应原图的长度。

第4步:通过对预形变二维码逐行操作,由轴线处向左向右依次映射,便可根据与原二维码的几何对应关系进行赋值,当遍历整个预形变二维码图像后,可得到形变二维码图像的展开图。

为适合应用需求,以圆半径8cm以及左右两棱各为2cm的特例即左右棱切线情况下,假设二维码图像长宽各为10cm,以此为例来说明预形变实现过程。图6为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中采用的原始二维码图片。图7为本发明圆-棱柱组合体表面的二维码的生成和采集方法一个实施例中采用的原始二维码拉伸后生成的预形变二维码图片。首先读取标准二维码图像(如图6所示),并获得其行个数carrierRows、列个数carrierCols,图像印制在载体上时,行数不发生变化。由于图像印制在载体左右棱部分宽度相等,所以左棱所占行、列数与右棱相等,具体算法如下:

第1步:根据(1-1)至(1-6)式求出形变后的二维码图像各部分的行、列像素数,具体求解如下:(l表示距离大小,L表示像素大小)

<mrow> <msub> <mi>L</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>L</mi> <mrow> <mi>C</mi> <mi>D</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mn>2</mn> <mn>10</mn> </mfrac> <mo>&CenterDot;</mo> <mi>c</mi> <mi>a</mi> <mi>r</mi> <mi>r</mi> <mi>i</mi> <mi>e</mi> <mi>r</mi> <mi>C</mi> <mi>o</mi> <mi>l</mi> <mi>s</mi> <mo>=</mo> <mn>0.2</mn> <mo>*</mo> <mn>372</mn> <mo>=</mo> <mn>74</mn> <mrow> <mo>(</mo> <mi>P</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow>

LBC=carrierCols-LAB-LCD=224(PX)

lB'O=(lAD-lAB-lCD)/2=(10-2-2)/2=3(cm)

<mrow> <mi>&theta;</mi> <mo>=</mo> <mi>arcsin</mi> <mrow> <mo>(</mo> <mfrac> <msub> <mi>l</mi> <mrow> <msup> <mi>B</mi> <mo>&prime;</mo> </msup> <mi>O</mi> </mrow> </msub> <mi>r</mi> </mfrac> <mo>)</mo> </mrow> <mo>=</mo> <mi>arcsin</mi> <mrow> <mo>(</mo> <mfrac> <mn>3</mn> <mn>4</mn> </mfrac> <mo>)</mo> </mrow> <mo>&ap;</mo> <mn>0.848</mn> <mrow> <mo>(</mo> <mi>r</mi> <mi>a</mi> <mi>d</mi> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>&beta;</mi> <mo>=</mo> <mfrac> <mi>&pi;</mi> <mn>2</mn> </mfrac> <mo>-</mo> <mi>&theta;</mi> <mo>&ap;</mo> <mn>0.723</mn> <mrow> <mo>(</mo> <mi>r</mi> <mi>a</mi> <mi>d</mi> <mo>)</mo> </mrow> </mrow>

LHG=LFE=LAB·sin(β)=74/sin(0.723)=111(px)

(半径所对应的像素点,为求)

第2步:二维码图像的轴线位置为每个薄片的圆心O所在,为二维码中的一行像素,通过遍历每一个像素来与原图像素进行一一对应,对于不同部分遍历算法不同,当遍历左棱是采取从左往右逐一遍历,即左棱从H点开始到G点结束(遍历111像素):H点对应原图的A点的像素,G点对应原图B点的像素,设图像遍历在左棱LHG移动了Δx,则在原图对应的位置是Δx·sin(β)(从A点开始,A点为0,遍历长为LHG=111像素),遍历到G点结束。

第3步:当对圆柱部分进行遍历时,由于角度不断变化,所以算法不同,我采取的是将圆柱部分从中轴线分为两部分,即圆柱部分O’点对应原图的Z点的像素,作为起点(注意不是遍历起点,遍历还有从左往右逐一遍历,是一个参考点)无论左半圆还有右半圆,像素遍历时,计算遍历点到O’点的弧长,进而计算出原图对应点。假设图像遍历在左半圆LGO'(从G点开始遍历,考虑已遍历完的左棱,G点为LHG,遍历长为=126像素)移动了Δy,则对应原图的位置是(考虑已遍历完的左棱),遍历到O’点结束,当图像遍历图像在右半圆LO'F(起点是O’,考虑到已遍历的点,O’点为遍历长为像素)移动了Δz,则原图对应的的位置是(考虑已遍历完的点),遍历到F点结束。

第4步:当遍历右棱时,从F点开始到E点结束(遍历111像素),右棱从F点开始到E点结束(遍历111像素),F点对应C点的像素,E点对应D点的像素,右棱算法与左棱相同,不加累述。

第5步:因为载体是柱体,所以横截面都是相同的,所以载体表面的二维码形变后,一列像素的个数不变,所以通过对形变后二维码newImgs从第一行像素开始,第carrierRows行像素为止,逐行进行计算,当上述四步处理遍历整个newImgs时也遍历了二维码原图像,然后会得到一个储存有形变后二维码图像的点阵newImgs,读取并显示newImgs后,便可看到如图7所示的形变并展开的二维码图像。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

本专利实在软件平台,通过vs2010编写程序实现,输入原图像,输出预形变图像。另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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