一种可3D打印的镂空二维码模型生成方法及系统与流程

文档序号:11566954阅读:1534来源:国知局
一种可3D打印的镂空二维码模型生成方法及系统与流程

本发明涉及面向3d打印的几何模型定制领域,尤其涉及一种可3d打印的镂空二维码模型生成方法及系统。



背景技术:

二维码,又称快速响应码,使用黑白矩形图案表示二进制数据,通过扫描设备可解码获得二维码中包含的信息。近年来,二维码技术日益成熟,尤其对于矩阵式二维码,由于其具有信息容量大、保密性高、容错纠错能力强、译码可靠性高、尺寸可调、制作成本较低等的优点,它已经被广泛的应用于信息检索、信息通讯、电子凭证、广告媒体等领域,并且逐渐渗透进人们的生活当中。

3d打印,又称增材制造,常见的3d打印指在计算机的控制下层叠原材料,制作三维物体的过程。随着3d打印技术的迅速发展,打印精度与打印速度逐渐提高,3d打印设备与打印材料的价格逐渐降低,3d打印也被广泛的应用于各个领域。

近年来,大量出现纸质二维码暴露出了容易破损、不耐用不环保、易于伪造安全性较低的问题,常见的动态二维码又具有对电子设备与信息安全的依赖性较高的问题。相比以上两种二维码,3d打印二维码具有独立成型、不易更改、不易损坏且使用持久等优点。鉴于3d打印技术的成熟与以上原因,目前已经出现了可3d打印的二维码三维几何模型生成技术,即通过对二维码黑色区域沿面法向量向正方向拉升或向反方向凹陷生成浮雕形式的二维码三维几何模型,因此输入模型都具有厚重的底部,对打印材料的耗费较高。除此之外,现有方法生成的二维码模型在3d打印时,对于模型的底部区域与模型的上浮二维码区域需要两种颜色对比较强的打印材料进行打印,才能保证打印结果能有效的被机器识别并成功解码。

然而,生成二维码模型的现有技术存在以下缺陷:

(1)现存技术生成的二维码模型无法作为较普遍的单一材料3d打印机的输入模型。

(2)由于二维码图像存在大量独立不连通的区域,根据二维码图像生成对应的可3d打印可扫描的镂空二维码模型的问题仍待解决。



技术实现要素:

为了解决现有技术的不足,本发明提供了一种可3d打印的镂空二维码模型生成方法,该方法通过用户输入的二维码图像,考虑到3d打印机精度生成相对应的镂空二维码模型,用于单一材料3d打印机的输入模型,最终可打印得到可以扫描并能成功被解码的立体镂空二维码。

本发明的一种可3d打印的镂空二维码模型生成方法,包括:

输入二维码图像,对镂空区域进行连通性处理,得到连通图像ic;其中,二维码图像的白色区域为镂空区域,黑色区域为非镂空区域;

根据连通图像ic中每个像素的颜色值,生成映射到单位面积的二维表面网格s;

对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m。

进一步的,对镂空区域进行连通性处理之前,还包括:

对二维码图像进行阈值预处理,遍历二维码图像并标记所有不同的独立白色区域。

本发明通过对二维码图像阈值预处理,再对预阈值后的二维码图像进行独立区域的检测,能够准确得到二维码图像信息,最终提高了连通性处理的精度。

进一步的,对镂空区域进行连通性处理的具体过程包括:

遍历二维码图像的所有不同的独立白色区域,使用白色直线连接二维码图像中距离最近的两个独立的白色区域,将两个白色区域合并为同一个区域;

检测二维码图像的独立白色区域个数是否大于1,若是,则返回上一步;否则,结束连通化处理过程,得到连通图像ic。

本发明对任意的二维码图像进行独立区域检测与连通性处理,得到白色区域连通的二维码图像,并据此生成准确地相对应的镂空二维码表面网格,最终得到连通的符合要求的镂空二维码模型。

进一步的,生成映射到单位面积的二维表面网格s的具体过程包括:

根据扫描线算法,顺序遍历连通图像ic中的每个像素,其中,连通图像ic的像素为n×n;

若第y+1行且第x+1列的像素颜色为白色,则记为p(x,y)=1;否则,记为p(x,y)=0,得到标记集合p,其中,1≤x≤n,n为正整数;

遍历标记集合p,若p(x,y)=1,则添加v0((x-1)/n,(y-1)/n)、v1(x/n,(y-1)/n)、v2((x-1)/n,y/n)和v3(x/n,y/n)这四个顶点,分别添加连接v0与v1、v1与v2、v2与v3、v3与v0提及v0与v2的边,若边已存在,则不添加,得到连通图像ic映射到单位面积的二维表面网格s。

其中,标记集合p与镂空表面网格成线性映射关系。

进一步的,对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m的具体过程包括:

遍历二维表面网格s的镂空区域,查找到面积最小的镂空区域,并对其求最大内接圆,得到内接圆直径d,计算得到放大倍数m1=ω/d,其中,ω为3d打印机精度;

根据白色直线的宽度w,计算得到放大倍数m2=ω/w;若m1>m2,则将二维表面网格s放大m1倍,否则,放大m2倍;

将放大后的二维表面网格s按照面法向量,即沿着z轴正方向延伸kω距离,打印出三维镂空模型m,其中,k≥1。

其中,k为用户根据需要自定义的打印厚度倍数。

本发明的第二目的是提供一种可3d打印的镂空二维码模型生成系统。

本发明的一种可3d打印的镂空二维码模型生成系统,包括:

图像连通性处理模块,其用于输入二维码图像,对镂空区域进行连通性处理,得到连通图像ic;其中,二维码图像的白色区域为镂空区域,黑色区域为非镂空区域;

二维表面网格映射模块,其用于根据连通图像ic中每个像素的颜色值,生成映射到单位面积的二维表面网格s;

二维表面网格放大及打印模块,其用于对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m。

进一步的,该系统还包括:

图像预处理模块,其用于对二维码图像进行阈值预处理,遍历二维码图像并标记所有不同的独立白色区域。

进一步的,所述图像连通性处理模块包括:

白色区域遍历模块,其用于遍历二维码图像的所有不同的独立白色区域,使用白色直线连接二维码图像中距离最近的两个独立的白色区域,将两个白色区域合并为同一个区域;

连通图像生成模块,其用于检测二维码图像的独立白色区域个数是否大于1,若是,则返回上一步;否则,结束连通化处理过程,得到连通图像ic。

进一步的,所述二维表面网格映射模块包括:

扫描模块,其用于根据扫描线算法,顺序遍历连通图像ic中的每个像素,其中,连通图像ic的像素为n×n;若第y+1行且第x+1列的像素颜色为白色,则记为p(x,y)=1;否则,记为p(x,y)=0,得到标记集合p,其中,1≤x≤n,n为正整数;

标记集合遍历模块,其用于遍历标记集合p,若p(x,y)=1,则添加v0((x-1)/n,(y-1)/n)、v1(x/n,(y-1)/n)、v2((x-1)/n,y/n)和v3(x/n,y/n)这四个顶点,分别添加连接v0与v1、v1与v2、v2与v3、v3与v0提及v0与v2的边,若边已存在,则不添加,得到连通图像ic映射到单位面积的二维表面网格s。

进一步的,所述二维表面网格放大及打印模块包括:

放大倍数计算模块,其用于遍历二维表面网格s的镂空区域,查找到面积最小的镂空区域,并对其求最大内接圆,得到内接圆直径d,计算得到放大倍数m1=ω/d,其中,ω为3d打印机精度;根据白色直线的宽度w,计算得到放大倍数m2=ω/w;若m1>m2,则将二维表面网格s放大m1倍,否则,放大m2倍;

z轴延伸及打印模块,其用于将放大后的二维表面网格s按照面法向量,即沿着z轴正方向延伸kω距离,打印出三维镂空模型m,其中,k≥1。

与现有技术相比,本发明的有益效果是:

(1)本发明将二维码图像分成镂空区域和非镂空区域,并对其进行处理,不但能满足常见的单一材料打印结果可扫描并成功解码,与浮雕式二维码相比还在降低材料耗费、减少打印时间、节省制作成本、环境保护等方面具有显著优势。

(2)本发明的该方法对任意的二维码图像进行独立区域检测与连通性处理,得到白色区域连通的二维码图像,并据此生成对应的镂空二维码表面网格,进而得到连通的镂空二维码模型。

(3)本发明的该方法根据不同3d打印机的精度可自动生成合适大小的可3d打印的三维镂空二维码模型。

(4)本发明的该方法得到的模型可直接进行3d打印,采用3d打印机即可完成,对于打印材料属性没有要求,所需打印材料和打印时间较少,成型成本较低。3d打印结果可扫描并能被成功解码,不易破损,使用周期较长,具有一定的环保价值。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的可3d打印的镂空二维码模型生成方法流程图;

图2为对输入的二维码图像进行第一次白色独立区域检测结果图;

图3(a)为遍历独立白色区域后,得到的距离最近两区域即区域1与区域2;

图3(b)为以宽度为2像素的白色直线连接距离最近的两区域的示意图;

图4(a)为输入的二维码图像i;

图4(b)为对输入的二维码图像i进行连通性处理后的结果图ic;

图4(c)为输入的二维码图像i与连通性处理结果图ic的差异图;

图5(a)为根据通性处理结果图ic特写部分的标记集合p示意图

图5(b)为根据图5(a)所示的标记集合生成的表面网格;

图6为生成的表面网格s;

图7为生成的三维镂空模型m及其3d打印的实物模型;

图8为本发明的可3d打印的镂空二维码模型生成系统的结构示意图;

图9为图像连通性处理模块的结构示意图;

图10为二维表面网格映射模块的结构示意图;

图11为二维表面网格放大及打印模块的结构示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

图1为本发明的可3d打印的镂空二维码模型生成方法流程图。

本实施例中,采用i表示用户输入的二维码二值图像,如附图4(a)所示。

如附图4(b)所示,ic表示连通性处理后的二维码图像,ω表示来自用户3d打印机打印精度的参数,首先生成的二维表面网格s时的横、纵坐标都归一化到[0,1]范围内,然后对二维表面网格s进行调整并挤出,得到可3d打印的三维镂空二维码模型m。

如图1所示,本发明的一种可3d打印的镂空二维码模型生成方法,包括:

步骤(1):输入二维码图像,对镂空区域进行连通性处理,得到连通图像ic;其中,二维码图像的白色区域为镂空区域,黑色区域为非镂空区域。

其中,对镂空区域进行连通性处理之前,还包括:

对二维码图像进行阈值预处理,遍历二维码图像并标记所有不同的独立白色区域。

具体地,对输入二维码图像i的每个像素通过扫描线算法,从上到下,从左到右进行遍历,并采用以下公式进行全局阈值预处理:

其中,以图像左上角为原点,i(x,y)表示图像某一坐标位置下的像素颜色,i′(x,y)表示处理后该像素颜色,对应为第y+1行,第x+1列对应的像素颜色,1表示白色,0表示黑色,t为阈值。

对预阈值后的二维码图像进行独立区域的检测,通过种子填充法的连通区域分析方法确定不同的独立白色区域,下面给出分析方法:

a.初始化不同区域的标记值label=1;

b.对图像中像素按扫描线算法进行遍历,直到i(x,y)=1;

c.若该点没有被标记,将该点作为种子,并赋予一个label标记值,然后将4领域相邻的色值为1的像素都压入栈中;

d.将栈顶像素赋予相同标记值后弹出,将与弹出栈顶像素4领域相邻的色值为1的像素都压入栈中;

e.重复步骤d直到栈为空,更改标记值label=label+1,若图像遍历未结束,回到步骤b,否则结束分析算法,得到不同独立白色区域,如附图2所示,图2中的不同色值的灰色区域表示不同的独立白色区域。

本发明通过对二维码图像阈值预处理,再对预阈值后的二维码图像进行独立区域的检测,能够准确得到二维码图像信息,最终提高了连通性处理的精度。

其中,对镂空区域进行连通性处理的具体过程包括:

步骤(1.1):遍历二维码图像的所有不同的独立白色区域,使用白色直线连接二维码图像中距离最近的两个独立的白色区域,将两个白色区域合并为同一个区域。

具体地,两区域间的距离通过,遍历属于两个不同区域边界上的像素,根据以下公式计算它们之间的距离di,并取最小值得到,并以距离最小的两个像素点作为终点与起点,以宽度为w的白色直线相连接,为保证处理后的二维码图像可扫描连接线宽度w小于等于0.8倍定位标记的线框宽度,如附图3(a)和图3(b)所示;

其中,图3(a)表示遍历独立白色区域后,得到的距离最近两区域即区域1与区域2,灰色像素点表示连接线的起点与终点;

图3(b)表示以宽度为2像素的白色直线连接距离最近的两区域的示意图,黑框表示连接线轮廓。

其中,di为位于两区域边界上的像素值之间的距离,以图像左上角为原点,x1y1和x2y2分别代表位于两区域边界上的像素值对应坐标。

步骤(1.2):检测二维码图像的独立白色区域个数是否大于1,若是,则返回上一步;否则,结束连通化处理过程,得到连通图像ic。

具体地,通过种子填充法的连通区域分析二维码图像后,若label≥1表示图像的独立白色区域个数大于1,则返回步骤(1.1),否则,结束连通化处理过程,得到白色区域连通的二维码图像ic,如附图4(b)所示。

本发明对任意的二维码图像进行独立区域检测与连通性处理,得到白色区域连通的二维码图像,并据此生成准确地相对应的镂空二维码表面网格,最终得到连通的符合要求的镂空二维码模型。

步骤(2):根据连通图像ic中每个像素的颜色值,生成映射到单位面积的二维表面网格s。

具体地,生成映射到单位面积的二维表面网格s的具体过程包括:

步骤(2.1):根据扫描线算法,顺序遍历连通图像ic中的每个像素,其中,连通图像ic的像素为n×n;

若第y+1行且第x+1列的像素颜色为白色,则记为p(x,y)=1;否则,记为p(x,y)=0,得到标记集合p,其中,1≤x≤n,n为正整数。

在具体实施过程中,根据扫描线算法,从左到右,从上到下的遍历n×n像素的图像ic中的每个像素,若第y+1行,第x+1列的像素颜色为白色记p(x,y)=1,否则记为p(x,y)=0,得到标记集合p,图像特写部分的标记如附图5(a)所示;

步骤(2.2):遍历标记集合p,若p(x,y)=1,则添加v0((x-1)/n,(y-1)/n)、v1(x/n,(y-1)/n)、v2((x-1)/n,y/n)、v3(x/n,y/n)四个顶点,分别添加连接v0与v1,v1与v2,v2与v3,v3与v0,v0与v2的边,若边已存在则不添加,得到通过连通二维码图像ic生成的映射到单位面积的二维表面网格s,结果网格部分特写如附图5(b)所示,得到的表面网格如附图6所示。

其中,标记集合p与镂空表面网格成线性映射关系。

步骤(3):对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m。

具体地,对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m的具体过程包括:

步骤(3.1):遍历二维表面网格s的镂空区域,查找到面积最小的镂空区域,并对其求最大内接圆,得到内接圆直径d,计算得到放大倍数m1=ω/d,其中,ω为3d打印机精度;

根据白色直线的宽度w,计算得到放大倍数m2=ω/d;若m1>m2,则将二维表面网格s放大m1倍,否则,放大m2倍;

步骤(3.2):将放大后的二维表面网格s按照面法向量,即沿着z轴正方向延伸kω距离,打印出三维镂空模型m,其中,k≥1。

其中k为用户根据需要自定义的打印厚度倍数,得到的可3d打印镂空模型m如附图7所示。

本发明将二维码图像分成镂空区域和非镂空区域,并对其进行处理,不但能满足常见的单一材料打印结果可扫描并成功解码,与浮雕式二维码相比还在降低材料耗费、减少打印时间、节省制作成本、环境保护等方面具有显著优势。

本发明的该方法对任意的二维码图像进行独立区域检测与连通性处理,得到白色区域连通的二维码图像,并据此生成对应的镂空二维码表面网格,进而得到连通的镂空二维码模型。

本发明的该方法根据不同3d打印机的精度可自动生成合适大小的可3d打印的三维镂空二维码模型。

本发明的该方法得到的模型可直接进行3d打印,采用3d打印机即可完成,对于打印材料属性没有要求,所需打印材料和打印时间较少,成型成本较低。3d打印结果可扫描并能被成功解码,不易破损,使用周期较长,具有一定的环保价值。

图8是本发明的可3d打印的镂空二维码模型生成系统的结构示意图。

如图8所示,本发明的一种可3d打印的镂空二维码模型生成系统,包括:

(1)图像连通性处理模块,其用于输入二维码图像,对镂空区域进行连通性处理,得到连通图像ic;其中,二维码图像的白色区域为镂空区域,黑色区域为非镂空区域。

如图9所示,所述图像连通性处理模块包括:

(1.1)白色区域遍历模块,其用于遍历二维码图像的所有不同的独立白色区域,使用白色直线连接二维码图像中距离最近的两个独立的白色区域,将两个白色区域合并为同一个区域;

(1.2)连通图像生成模块,其用于检测二维码图像的独立白色区域个数是否大于1,若是,则返回上一步;否则,结束连通化处理过程,得到连通图像ic。

(2)二维表面网格映射模块,其用于根据连通图像ic中每个像素的颜色值,生成映射到单位面积的二维表面网格s。

如图10所示,所述二维表面网格映射模块包括:

(2.1)扫描模块,其用于根据扫描线算法,顺序遍历连通图像ic中的每个像素,其中,连通图像ic的像素为n×n;若第y+1行且第x+1列的像素颜色为白色,则记为p(x,y)=1;否则,记为p(x,y)=0,得到标记集合p,其中,1≤x≤n,n为正整数;

(2.2)标记集合遍历模块,其用于遍历标记集合p,若p(x,y)=1,则添加v0((x-1)/n,(y-1)/n)、v1(x/n,(y-1)/n)、v2((x-1)/n,y/n)和ν3(x/n,y/n)这四个顶点,分别添加连接v0与v1、v1与v2、v2与v3、v3与v0提及v0与v2的边,若边已存在,则不添加,得到连通图像ic映射到单位面积的二维表面网格s。

(3)二维表面网格放大及打印模块,其用于对二维表面网格s进行放大处理,打印出与3d打印机精度相匹配的三维镂空模型m。

如图11所示,所述二维表面网格放大及打印模块包括:

(3.1)放大倍数计算模块,其用于遍历二维表面网格s的镂空区域,查找到面积最小的镂空区域,并对其求最大内接圆,得到内接圆直径d,计算得到放大倍数m1=ω/d,其中,ω为3d打印机精度;根据白色直线的宽度w,计算得到放大倍数m2=ω/w;若m1>m2,则将二维表面网格s放大m1倍,否则,放大m2倍;

(3.2)z轴延伸及打印模块,其用于将放大后的二维表面网格s按照面法向量,即沿着z轴正方向延伸kω距离,打印出三维镂空模型m,其中,k≥1。

其中,该系统还包括:

(4)图像预处理模块,其用于对二维码图像进行阈值预处理,遍历二维码图像并标记所有不同的独立白色区域。

本发明将二维码图像分成镂空区域和非镂空区域,并对其进行处理,不但能满足常见的单一材料打印结果可扫描并成功解码,与浮雕式二维码相比还在降低材料耗费、减少打印时间、节省制作成本、环境保护等方面具有显著优势。

本发明对任意的二维码图像进行独立区域检测与连通性处理,得到白色区域连通的二维码图像,并据此生成对应的镂空二维码表面网格,进而得到连通的镂空二维码模型。

本发明根据不同3d打印机的精度可自动生成合适大小的可3d打印的三维镂空二维码模型。

本发明得到的模型可直接进行3d打印,采用3d打印机即可完成,对于打印材料属性没有要求,所需打印材料和打印时间较少,成型成本较低。3d打印结果可扫描并能被成功解码,不易破损,使用周期较长,具有一定的环保价值。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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