法律状态公告日
法律状态信息
法律状态
2020-05-22
授权
授权
2017-10-10
实质审查的生效 IPC(主分类):G06K19/06 申请日:20170516
实质审查的生效
2017-09-08
公开
公开
技术领域
本发明涉及3D打印领域,尤其涉及一种改进的面向3D打印自定义模型立体二维码生成方法及系统。
背景技术
二维码(Two-dimensional Code),又称快速响应码(Quick Response Code),是在条形码技术基础上扩展出的一种具有可读性的条码。二维码利用黑白正方形模块对大量信息进行编码,通过设备扫描可快速传达出其所包含的信息。二维码以其便捷的获取信息、网站跳转、推送广告、防伪促销以及手机支付等强大功能的优势,已经成为信息时代应用最为广泛的自动识别技术,被广泛应用于产品溯源、景点门票、运输管理以及会议服务等各个领域。而已有的二维码生成技术,大多面向的是数字图像。
3D打印(3D Printing),又称增材制造(Additive Manufacturing,AM),是一种快速成形技术,它以数字化模型为基础,运用塑料、陶瓷、金属等可粘合材料,摆脱传统的减式材料制造模式,通过逐层打印的方式构造物体。由于其在制造工艺方面的创新,被认为是“第三次工业革命的重要生产工具”。随着3D打印技术的迅速发展,目前已经出现使用两种颜色的材料打印在平面上的立体二维码,但主流的消费级3D打印机只能打印单一属性的材料,即只能提供单一颜色,不满足二维码解码需要高对比度的前景色和背景色两种颜色的特性,另外,由于空间畸变在任意曲面上表达的立体二维码识别率较低,因此,使用单一属性成型材料的3D打印机在任意三维模型上制造立体二维码的技术还不够成熟。
目前虽然有面向3D打印的自定义模型立体二维码生成方法,比如:申请号为CN201710031940.0的专利,该申请通过对自定义三维模型进行几何与结构分析,在适合打印立体二维码的目标区域根据透视投影变换的结果进行凹陷操作生成可用单一属性成型材料的3D打印机制造的立体二维码。但是,该方法用于生成立体二维码的目标区域通过几何与结构分析给出,并非完全由用户指定,而且这些目标区域往往是曲率变化比较小的区域。而在曲率变化比较大的目标区域,该方法生成的立体二维码由于黑色和白色模块之间的颜色对比度不足不容易被解码器成功解码。
发明内容
为了解决现有技术的不足,本发明提供了一种改进的面向3D打印自定义模型立体二维码生成方法,该方法首先采用透视投影变换将二维码映射到自定义3D模型的目标区域,并根据变换结果进行统一深度的凹陷操作,然后计算立体二维码每一点的可见性,并根据物理实验获得的可见性和灰度值之间的关系模拟出真实的二维码图像,随后根据模拟的结果调整立体二维码每个黑色模块的深度,使得二维码前景色和背景色的对比度增强,从而提高解码成功率,最后生成可通过单一属性成型材料的3D打印机制造的包含立体二维码的三维模型。
本发明的一种改进的面向3D打印自定义模型立体二维码生成方法,包括:
对自定义3D模型进行网格化和归一化处理;
采用透视投影变换方法将二维码映射到自定义3D模型的目标区域;
根据映射结果进行凹陷操作,在自定义3D模型表面生成具有相同凹陷深度的立体二维码;
物理实验模拟真实的二维码图像,计算出立体二维码的整体对比度和每个黑色模块的对比度;
根据模拟结果优化立体二维码黑色模块的深度,在自定义3D模型表面生成立体二维码;
将生成的含有立体二维码的3D模型输入至3D打印机,并利用单一材料进行打印,最后输出带有立体二维码的3D实物。
进一步的,在根据映射结果进行凹陷操作之前,还包括:
对自定义3D模型的目标区域的网格进行重新三角化,使得映射到3D模型的目标区域的二维码网格和用户给定的3D模型网格融合在一起。
进一步的,对自定义3D模型进行网格化和归一化处理的具体过程包括:
使用基于Lloyd松弛的重采样算法在自定义3D模型表面求得离散采样点,通过3DDelaunay三角剖分方法实现对输入的自定义3D模型的网格化;
使用离差标准化方法,对网格化后自定义三维模型的数据进行线性变换,将3D模型三角网格上每个点的三维坐标分量均映射到[0-1]之间。
其中,使用基于Lloyd松弛的重采样算法在自定义3D模型表面,能够求得具有各向同性、过渡光滑且视觉效果较好的离散采样点,这样能够提高最后打印的立体二维码的精度。
进一步的,采用透视投影变换方法将二维码映射到自定义3D模型的目标区域的具体过程包括:
根据3D打印机的打印精度,得到目标区域的最小面积;
确定透视投影变换的关系,进而获得视点和视平面所在位置;
将二维码放置在视平面上,并把其上的每个正方形模块网格化为两个三角形,从视点发出一系列射线,射线穿过二维码网格的顶点投射到三维模型,从而在3D模型表面的目标区域生成二维码三角网格,将对应于二维码黑色模块的3D模型表面的二维码三角网格标记为黑色,代表这些三角网格需要进行凹陷操作。
进一步的,对自定义3D模型的目标区域的网格进行重新三角化的具体过程为:
将目标区域与射线相交的三角面片全部删除获得一个带洞的三维模型,然后获得洞的边界,将洞的边界与二维码三角网格的边界之间的部分采用2D Delaunay三角剖分方法进行重新三角化。
进一步的,物理实验模拟真实的二维码图像之前,还包括计算立体二维码的每一点的可见性,其具体过程为:
假设只有环境光,相当于将立体二维码放置在积分球内;
将3D模型进行切片处理,求得立体二维码上每一点沿着透视投影方向在每一层上交点在每一层轮廓的可见多边形;
根据Girard理论的推论求得立体二维码上每一点可见球面多边形的面积;
任一点可见的积分球面积与积分球整体面积之比,得到当前点的可见性。
进一步的,物理实验模拟真实的二维码图像的具体过程为:
将一个预设像素值的二值图划分成若干个区域,将该二值图通过透视投影变换映射到模型表面,再凹陷相应的深度得到与划分区域数量相等的大小不同的洞;
求得每个洞中心点的可见性并从物理模型照片中获得相应位置的平均灰度值作为中心点的灰度值,通过对可见性与灰度值拟合曲线获得它们之间的关系;
将立体二维码每一点的可见性通过可见性和灰度值之间的关系映射为立体二维码该点处的灰度值,最终即可获得模拟出的真实二维码图像每个像素的灰度值。
本发明根据物理实验获得的可见性和灰度值之间的关系模拟出真实的二维码图像,随后根据模拟的结果调整立体二维码每个黑色模块的深度,使得二维码前景色和背景色的对比度增强,从而提高了解码成功率。
本发明还提供了一种改进的面向3D打印自定义模型立体二维码生成系统。
本发明的一种改进的面向3D打印自定义模型立体二维码生成系统,包括:
网格化和归一化处理模块,其用于对自定义3D模型进行网格化和归一化处理;
映射模块,其用于采用透视投影变换方法将二维码映射到自定义3D模型的目标区域;
凹陷模块,其用于根据映射结果进行凹陷操作,在自定义3D模型表面生成具有相同凹陷深度的立体二维码;
模拟模块,其用于物理实验模拟真实的二维码图像,计算出立体二维码的整体对比度和每个黑色模块的对比度;
优化模块,其用于根据模拟结果优化立体二维码黑色模块的深度,在自定义3D模型表面生成立体二维码;
打印模块,其用于将生成的含有立体二维码的3D模型输入至3D打印机,并利用单一材料进行打印,最后输出带有立体二维码的3D实物。
进一步的,该系统还包括:
重新三角化模块,其用于在根据映射结果进行凹陷操作之前,对自定义3D模型的目标区域的网格进行重新三角化,使得映射到3D模型的目标区域的二维码网格和用户给定的3D模型网格融合在一起。
进一步的,所述网格化和归一化处理模块包括:
网格化模块,其用于使用基于Lloyd松弛的重采样算法在自定义3D模型表面求得离散采样点,通过3D Delaunay三角剖分方法实现对输入的自定义3D模型的网格化;
线性变换模块,其用于使用离差标准化方法,对网格化后自定义三维模型的数据进行线性变换,将3D模型三角网格上每个点的三维坐标分量均映射到[0-1]之间。
进一步的,所述映射模块包括:
目标区域的最小面积计算模块,其用于根据3D打印机的打印精度,得到目标区域的最小面积;
视点和视平面位置确定模块,其用于确定透视投影变换的关系,进而获得视点和视平面所在位置;
二维码三角网格标记模块,其用于将二维码放置在视平面上,并把其上的每个正方形模块网格化为两个三角形,从视点发出一系列射线,射线穿过二维码网格的顶点投射到三维模型,从而在3D模型表面的目标区域生成二维码三角网格,将对应于二维码黑色模块的3D模型表面的二维码三角网格标记为黑色,代表这些三角网格需要进行凹陷操作。
进一步的,该系统还包括:可见性计算模块,其用于假设只有环境光,相当于将立体二维码放置在积分球内;将3D模型进行切片处理,求得立体二维码上每一点沿着透视投影方向在每一层上交点在每一层轮廓的可见多边形;根据Girard理论的推论求得立体二维码上每一点可见球面多边形的面积;任一点可见的积分球面积与积分球整体面积之比,得到当前点的可见性。
进一步的,所述模拟模块包括:
模型表面洞获取模块,其用于将一个预设像素值的二值图划分成若干个区域,将该二值图通过透视投影变换映射到模型表面,再凹陷相应的深度得到与划分区域数量相等的大小不同的洞;
可见性与灰度值关系计算模块,其用于求得每个洞中心点的可见性并从物理模型照片中获得相应位置的平均灰度值作为中心点的灰度值,通过对可见性与灰度值拟合曲线获得它们之间的关系;
灰度值计算模块,其用于将立体二维码每一点的可见性通过可见性和灰度值之间的关系映射为立体二维码该点处的灰度值,最终即可获得模拟出的真实二维码图像每个像素的灰度值。
与现有技术相比,本发明的有益效果是:
(1)本发明可以由用户指定任意的目标区域,并且在曲率变化比较大的目标区域仍然可以形成足够的对比度,提高了在任意三维模型上生成的立体二维码的解码成功率,最终生成的立体二维码明显优于现有3D技术打印出的二维码。
(2)本发明首先采用透视投影变换将二维码映射到自定义3D模型的目标区域,并根据变换结果进行统一深度的凹陷操作,然后计算立体二维码每一点的可见性,并根据物理实验获得的可见性和灰度值之间的关系模拟出真实的二维码图像,随后根据模拟的结果调整立体二维码每个黑色模块的深度,使得二维码前景色和背景色的对比度增强,从而提高解码成功率,最后生成可通过单一属性成型材料的3D打印机制造的包含立体二维码的三维模型。
(3)本发明生成的立体二维码在每个黑色模块的凹陷深度均可达到最优,大大减少了3D打印过程中所需的支撑结构。
(4)本发明通过采用不同凹陷深度在用户指定的任意三维模型的目标区域生成立体二维码,使得二维码可很容易地通过单一属性成型材料的3D打印机制造出来,其产生的吸引力可以带来一定的商业价值。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本发明的改进的面向3D打印自定义模型立体二维码生成方法流程图;
图2为采用透视投影变换将普通二维码映射到三维模型bunny某一目标区域的结果图;
图3为对目标区域网格进行重新三角化使得映射到三维模型目标区域的二维码网格和用户给定的三维模型网格融合后的结果图;
图4为通过透视投影变换在目标区域生成凹陷统一深度的立体二维码示意图;
图5为包含立体二维码的三维模型切片后每一层上可见性多边形求解示意图;
图6(a)为立体二维码上点p′各个切片层经纬度坐标下的可见球面多边形;
图6(b)为对点p′处各个切片层经纬度坐标下的可见球面多边形求交获得的该点最终的可见球面多边形;
图7为采用白色PLA材料的打印机获得的物理实验模型效果图;
图8为可见性与灰度值散点图及拟合曲线结果图;
图9为本发明的改进的面向3D打印自定义模型立体二维码生成系统的结构示意图;
图10为网格化和归一化处理模块的结构示意图;
图11为映射模块的结构示意图;
图12为模拟模块的结构示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明中三角面片是通过三角剖分进行网格化处理之后得到的三角网格的基本单位,由空间中三个不共线的顶点顺次连接而成,可以理解为三角形,三角形内部区域为三角面片。
图1为本发明的改进的面向3D打印自定义模型立体二维码生成方法流程图。
如图1所示,本发明的改进的面向3D打印自定义模型立体二维码生成方法,至少包括:
步骤(1):对自定义3D模型进行网格化和归一化处理。
具体地,对自定义3D模型进行网格化和归一化处理的具体过程包括:
步骤(1-1):使用基于Lloyd松弛的重采样算法在自定义3D模型表面求得离散采样点,通过3D Delaunay三角剖分方法实现对输入的自定义3D模型的网格化;
步骤(1-2):使用离差标准化方法,对网格化后自定义三维模型的数据进行线性变换,将3D模型三角网格上每个点的三维坐标分量均映射到[0-1]之间。
其中,使用基于Lloyd松弛的重采样算法在自定义3D模型表面,能够求得具有各向同性、过渡光滑且视觉效果较好的离散采样点,这样能够提高最后打印的立体二维码的精度。
步骤(2):采用透视投影变换方法将二维码映射到自定义3D模型的目标区域。
具体地,采用透视投影变换方法将二维码映射到自定义3D模型的目标区域的具体过程包括:
步骤(2-1):根据3D打印机的打印精度P,设置P的初始值,得到目标区域的最小面积Amin:
Amin=[(V-1)*4+21]*P
其中V是输入的二维码的版本号,二维码共有40个版本,版本1是由21*21个黑色或白色的正方形模块构成的矩阵,之后版本号每增加1,二维码的每行每列均增加4个正方形模块。由用户在自定义3D模型表面指定一块面积大于Amin的区域作为目标区域。
步骤(2-2):确定透视投影变换的关系,获得视点和视平面所在位置。
所述步骤(2-2)中,具体包括以下步骤:
(2-2-1):计算目标区域的面积Darea;
(2-2-2):确定目标区域与和视平面之间的距离;
(2-2-3):确定视平面的位置;
(2-2-4):确定透视投影变换,将普通二维码映射到目标区域,具体为:
(2-2-4-a):根据视平面和目标区域的位置关系,确定视点所在的位置,建立透视投影变换;
(2-2-4-b):将普通二维码放置于视平面上,根据确定的透视投影变换关系,将普通二维码映射到目标区域。
所述步骤(2-2-2)的具体方法为:实验表明,当扫描距离和普通二维码大小比例为10:1时,大多数解码器可以成功解码,由于使用单一材料3D打印的二维码受光照、前景背景色对比度等的影响,可以设置比例R的初始值为8:1,用户可根据实际情况进行相应调整,从而计算出目标区域和视平面之间的距离:
Dis=Darea/R
所述步骤(2-2-3)的具体方法为:设置视平面的大小为解码器识别框的大小,初始值为4cm*4cm,用户可根据实际情况进行相应的调整,视平面垂直于目标区域的法线方向且视平面的中点位于目标区域的法线方向上。
步骤(2-3):将二维码放置在视平面上,并把其上的每个正方形模块网格化为两个三角形,从视点发出一系列射线,射线穿过二维码网格的顶点投射到三维模型,从而在目标区域生成三维模型表面的二维码三角网格,将对应于二维码黑色模块的三维模型表面的二维码三角网格标记为黑色,代表这些三角网格需要进行凹陷操作。图2即为采用透视投影变换将普通二维码映射到三维模型bunny某一目标区域的结果图。如图4所示,三维模型表面的二维码三角网格的顶点可以通过射线穿过二维码顶点与目标区域三角网格的面片求交获得。求解过程如下:
s+td=(1-u-v)V0+uV1+vV2>
其中,c是视点位置,即为射线的起点坐标,s为二维码图像上正方形模块顶点的坐标,t为射线方程中的参数,d=s-c是射线的方向,V0,V1,V2为目标区域三角面片的三个顶点,u,v为交点的纹理坐标值。令E1=V1-V0,E2=V2-V0,T=s-V0,求解(1)式即为求解线性方程组(2)
根据Gramer法则可解得:
其中P=d×E2,Q=T×E2。再将纹理坐标值(u,v)转化为直角坐标系坐标即可得到最终三维模型表面的二维码三角网格的顶点坐标p。
步骤(3):根据映射结果进行凹陷操作,在自定义3D模型表面生成具有相同凹陷深度的立体二维码。
具体实施中,在根据映射结果进行凹陷操作之前,还包括:
对自定义3D模型的目标区域的网格进行重新三角化,使得映射到3D模型的目标区域的二维码网格和用户给定的3D模型网格融合在一起。
具体地,对自定义3D模型的目标区域的网格进行重新三角化的具体过程为:
将目标区域与射线相交的三角面片全部删除获得一个带洞的三维模型,然后获得洞的边界,将洞的边界与二维码三角网格的边界之间的部分采用2D Delaunay三角剖分方法进行重新三角化。图3即为对目标区域网格进行重新三角化使得映射到三维模型目标区域的二维码网格和用户给定的三维模型网格融合后的结果图,其中红色区域的三角网格为将目标区域与射线相交的三角面片全部删除后洞边界与二维码三角网格的边界之间的部分采用2D Delaunay三角剖分方法进行重新三角化的结果。
步骤(4):物理实验模拟真实的二维码图像,计算出立体二维码的整体对比度和每个黑色模块的对比度。
具体实施中,物理实验模拟真实的二维码图像之前,还包括计算立体二维码的每一点的可见性,其具体过程为:
步骤(4-1-a):假设只有环境光,相当于将立体二维码放置在积分球内。积分球即一个内壁涂油白色漫反射材料的空腔球体,球内壁上涂以理想的漫反射材料,也就是漫反射系数接近于1的材料,这样通过球壁上的窗孔进入积分球的光经过内壁涂层多次反射,在内壁上会形成均匀照度。
步骤(4-1-b):三维模型进行切片处理,获得每一层的轮廓,求得立体二维码上每一点沿着透视投影方向在每一层上交点q在每一层轮廓的可见多边形P′。如图5所示,蓝色的圆圈即为立体二维码上每一点沿着透视投影方向在一层上的交点q,彩色多边形轮廓即为切片处理后该层的轮廓,黑色多边形为该层的可见多边形P′。可见多边形P′满足在其内部的每个点r,都有边qr不与任何轮廓相交。将该可见多边形P′投射到球面上求得可见球面多边形上每个顶点的三维直角坐标。将球面多边形每个顶点三维直角坐标转换为经纬度坐标,计算这些球面多边形的交集得到最终该点的可见球面多边形P。如图6(a)所示,立体二维码上点p′各个切片层经纬度坐标下的可见球面多边形;如图6(b)所示,为对点p′处各个切片层经纬度坐标下的可见球面多边形求交获得的该点最终的可见球面多边形P。
步骤(4-1-c):根据Girard理论的推论求得立体二维码上每一点可见球面多边形P的面积Ap′:
Ap′=R2*E
其中R为积分球的半径
其中,α1,α2,...,αn为球面多边形A1A2...An对应的内角角度值。
步骤(4-1-d):计算立体二维码每一点处的可见性Vp′,即在该点可见的积分球面积Ap′与积分球整体面积AS之比。
其中AS=4*π*R2。
具体地,物理实验模拟真实的二维码图像的具体过程为:
步骤(4-2-a):设计一个大小为200×200像素的二值图,将其分为8×8的区域,每个区域包含25×25个像素,从左往右每列的每个区域放置大小为(2i+1)×(2i+1)i=1,2…,8的黑色像素块,然后建立一个8cm×8cm×2cm的立方体,从上到下设置每行的每个区域深度均为
步骤(4-2-b):求得每个洞中心点的可见性vh并从采用白色PLA材料的打印机获得的物理模型照片中获得相应位置的平均灰度值gh作为中心点的灰度值,通过对可见性与灰度值拟合曲线获得它们之间的关系。图7即为采用白色PLA材料的打印机获得的物理实验模型效果图;图8为可见性与灰度值散点图及拟合曲线结果图。
步骤(4-2-c):将立体二维码每一点的可见性Vp′通过可见性和灰度值之间的关系映射为立体二维码该点处的灰度值gp′,最终即可获得模拟出的真实二维码图像每个像素的灰度值gj。
本发明根据物理实验获得的可见性和灰度值之间的关系模拟出真实的二维码图像,随后根据模拟的结果调整立体二维码每个黑色模块的深度,使得二维码前景色和背景色的对比度增强,从而提高了解码成功率。
其中,计算立体二维码的整体对比度和每个黑色模块的对比度的具体过程为:
步骤(4-3-a):计算每个黑色模块的灰度
其中j为黑色模块Bi或白色模块Wi的一个像素,wj为通过高斯核求得的像素j处的权重值,gj为像素j处的灰度值。
步骤(4-3-b):计算立体二维码整体对比度为:
C=GW-GB>
其中GW为所有白色模块的平均灰度值:
GB为所有黑色模块的平均灰度值:
m,n分别为立体二维码中所有白色和黑色模块的个数。
步骤(4-3-c):计算立体二维码每个黑色模块的对比度为:
其中D是黑色模块Bi8连通的邻域内的所有白色模块的集合,k为集合D中元素的个数。
步骤(5):根据模拟结果优化立体二维码黑色模块的深度,在自定义3D模型表面生成立体二维码。
具体地,设置对比度阈值为0.3,减小立体二维码中黑色模块的凹陷深度,直到所有的黑色模块的对比度刚好为0.3时为止。
步骤(6):将生成的含有立体二维码的3D模型输入至3D打印机,并利用单一材料进行打印,最后输出带有立体二维码的3D实物。
具体地,将生成的含有立体二维码的模型导出为stl格式,并输入至3D打印机中,进行打印制作。
本发明可以由用户指定任意的目标区域,并且在曲率变化比较大的目标区域仍然可以形成足够的对比度,提高了在任意三维模型上生成的立体二维码的解码成功率,最终生成的立体二维码明显优于现有3D技术打印出的二维码。
本发明首先采用透视投影变换将二维码映射到自定义3D模型的目标区域,并根据变换结果进行统一深度的凹陷操作,然后计算立体二维码每一点的可见性,并根据物理实验获得的可见性和灰度值之间的关系模拟出真实的二维码图像,随后根据模拟的结果调整立体二维码每个黑色模块的深度,使得二维码前景色和背景色的对比度增强,从而提高解码成功率,最后生成可通过单一属性成型材料的3D打印机制造的包含立体二维码的三维模型。
本发明生成的立体二维码在每个黑色模块的凹陷深度均可达到最优,大大减少了3D打印过程中所需的支撑结构。
本发明通过采用不同凹陷深度在用户指定的任意三维模型的目标区域生成立体二维码,使得二维码可很容易地通过单一属性成型材料的3D打印机制造出来,其产生的吸引力可以带来一定的商业价值。
图9是本发明的一种改进的面向3D打印自定义模型立体二维码生成系统的结构示意图。
如图9所示,本发明的一种改进的面向3D打印自定义模型立体二维码生成系统,至少包括:
(1)网格化和归一化处理模块,其用于对自定义3D模型进行网格化和归一化处理。
具体地,所述网格化和归一化处理模块,如图10所示,还包括:
(1-1)网格化模块,其用于使用基于Lloyd松弛的重采样算法在自定义3D模型表面求得离散采样点,通过3D Delaunay三角剖分方法实现对输入的自定义3D模型的网格化;
(1-2)线性变换模块,其用于使用离差标准化方法,对网格化后自定义三维模型的数据进行线性变换,将3D模型三角网格上每个点的三维坐标分量均映射到[0-1]之间。
(2)映射模块,其用于采用透视投影变换方法将二维码映射到自定义3D模型的目标区域。
具体地,如图11所示,本发明的映射模块包括:
(2-1)目标区域的最小面积计算模块,其用于根据3D打印机的打印精度,得到目标区域的最小面积;
(2-2)视点和视平面位置确定模块,其用于确定透视投影变换的关系,进而获得视点和视平面所在位置;
(2-3)二维码三角网格标记模块,其用于将二维码放置在视平面上,并把其上的每个正方形模块网格化为两个三角形,从视点发出一系列射线,射线穿过二维码网格的顶点投射到三维模型,从而在3D模型表面的目标区域生成二维码三角网格,将对应于二维码黑色模块的3D模型表面的二维码三角网格标记为黑色,代表这些三角网格需要进行凹陷操作。
(3)凹陷模块,其用于根据映射结果进行凹陷操作,在自定义3D模型表面生成具有相同凹陷深度的立体二维码。
(4)模拟模块,其用于物理实验模拟真实的二维码图像,计算出立体二维码的整体对比度和每个黑色模块的对比度。
具体地,如图12所示,模拟模块包括:
(4-1)模型表面洞获取模块,其用于将一个预设像素值的二值图划分成若干个区域,将该二值图通过透视投影变换映射到模型表面,再凹陷相应的深度得到与划分区域数量相等的大小不同的洞;
(4-2)可见性与灰度值关系计算模块,其用于求得每个洞中心点的可见性并从物理模型照片中获得相应位置的平均灰度值作为中心点的灰度值,通过对可见性与灰度值拟合曲线获得它们之间的关系;
(4-3)灰度值计算模块,其用于将立体二维码每一点的可见性通过可见性和灰度值之间的关系映射为立体二维码该点处的灰度值,最终即可获得模拟出的真实二维码图像每个像素的灰度值。
(5)优化模块,其用于根据模拟结果优化立体二维码黑色模块的深度,在自定义3D模型表面生成立体二维码;
(6)打印模块,其用于将生成的含有立体二维码的3D模型输入至3D打印机,并利用单一材料进行打印,最后输出带有立体二维码的3D实物。
另一实施例,该系统还包括:
重新三角化模块,其用于在根据映射结果进行凹陷操作之前,对自定义3D模型的目标区域的网格进行重新三角化,使得映射到3D模型的目标区域的二维码网格和用户给定的3D模型网格融合在一起。
另一实施例,该系统还包括:可见性计算模块,其用于假设只有环境光,相当于将立体二维码放置在积分球内;将3D模型进行切片处理,求得立体二维码上每一点沿着透视投影方向在每一层上交点在每一层轮廓的可见多边形;根据Girard理论的推论求得立体二维码上每一点可见球面多边形的面积;任一点可见的积分球面积与积分球整体面积之比,得到当前点的可见性。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
机译: 用于3D打印定制模型的立体2D代码的改进方法和系统
机译: 面向3D打印的模型分解和布置方法
机译: 面向订单制造系统的面向对象方法和数据模型的方法和系统