1.面向3D打印的自定义模型立体二维码生成方法,其特征是,包括以下步骤:
步骤(1):包括步骤(1-1)-步骤(1-3);
步骤(1-1):输入二维码和自定义3D模型,对输入的自定义3D模型进行网格化和抽壳处理;
步骤(1-2):对处理结果进行几何与结构分析;
步骤(1-3):在自定义3D模型表面寻找适合打印立体二维码的目标区域;
步骤(2):采用透视投影变换方法将二维码映射到目标区域;
步骤(3):根据映射结果进行凹陷操作,在自定义3D模型表面生成立体的二维码;
步骤(4):将生成的含有立体二维码的三维模型输入至3D打印机中,并通过单一材料的3D打印机进行打印,最后输出带有立体二维码的3D实物。
2.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,所述步骤(1-1)包括:
步骤(1-1-a):使用基于Lloyd松弛的重采样算法在自定义3D模型表面求得离散采样点,通过3D Delaunay三角剖分方法实现对输入的自定义3D模型的网格化;
步骤(1-1-b):使用基于水平集方法的具有特征保持的网格模型偏置算法对网格化处理后的模型进行偏置处理,并对网格化处理后的模型和偏置后的模型进行布尔差运算,得到抽壳处理后的壳体。
3.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(1-2)包括:
步骤(1-2-a):设置3D打印机的打印精度P的初始值,得到目标区域的最小面积Amin:
Amin=[(V-1)*4+21]*P
其中V是输入的二维码的版本号,二维码共有40个版本,版本1是由21*21个黑色或白色的正方形模块构成的矩阵,之后版本号每增加1,二维码的每行每列均增加4个正方形模块;
步骤(1-2-b):设定自定义3D模型的打印方向,以网格的每个三角面片为种子点进行区域扩张,寻找区域面积中所有三角面片的面积之和大于Amin的候选目标区域,通过计算区域面积大于Amin的候选目标区域与打印工作台的平行程度,从而构造衡量目标区域与打印工作台平行程度的能量函数Ep:
其中M(λ11,λ12,λ13)为候选目标区域中所有三角面片的平均单位法向量,λ11,λ12,λ13分别为候选目标区域中所有三角面片的平均单位法向量在x、y和z三个方向的分量,N(λ21,λ22,λ23)为打印工作台的单位法向量,λ21,λ22,λ23分别为打印工作台的单位法向量在x、y和z三个方向的分量;
步骤(1-2-c):通过计算网格化处理后自定义3D模型候选目标区域对应的所有三角面片上每个顶点的曲率加权平均得到候选目标区域的平均曲率,从而构造衡量目标区域平滑程度的能量函数Es:
Es=∫∫D(||I(u,v)||F2+||II(u,v)||F2)dudv
其中D为候选目标区域,I(u,v)为曲面的第一基本形式,II(u,v)为曲面的第二基本形式,||·||为范数;u、v为候选目标区域参数化后的曲面坐标分量;
步骤(1-2-d):构造衡量目标区域可见性的能量函数Ev:
其中T为候选目标区域三角面片的集合,ti为T中任意一个三角面片,V(ti)为用户根据ti满足二维码可见性要求的程度自定义的数字标签所对应的数值,ti越满足可见性要求,V(ti)的值越小;
步骤(1-2-e):构造衡量目标区域是否位于输入的自定义3D模型功能区的能量函数Ef:
其中T为候选目标区域三角面片的集合,ti为T中任意一个三角面片,若ti位于用户在3D模型表面自定义的功能区内,则F(ti)=1;否则F(ti)=0。
4.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(1-3)包括:选择使得能量函数E最小的候选区域作为最终的目标区域D:
E=λpEp+λsEs+λvEv+λfEf
λp是分别为衡量目标区域与打印工作台平行程度的能量函数Ep权重值;
λs是分别为衡量目标区域平滑程度的能量函数Es权重值;
λv是分别为衡量目标区域可见性的能量函数Ev的权重值;
λf是分别为衡量目标区域是否位于功能区能量函数Ef的权重值。
5.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(2)中,包括以下步骤:
步骤(2-1):计算目标区域的面积Darea:
其中T为目标区域三角面片的集合,ti为T中任意一个三角面片,S(ti)为ti的面积;
步骤(2-2):计算目标区域与和视平面之间的距离;
步骤(2-3):根据目标区域和视平面之间的距离确定视平面的位置;
步骤(2-4):采用透视投影变换方法,将二维码映射到目标区域。
6.如权利要求5所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(2-2):计算出目标区域和视平面之间的距离Dis:
Dis=Darea/R;
其中,R表示扫描距离和目标区域面积开方的比例,用户根据实际情况设定;
所述步骤(2-3):设置视平面的大小为解码器识别框的大小,用户根据实际情况进行调整,视平面满足与目标区域之间的距离为Dis且垂直于目标区域的法线方向;同时视平面的中点位于目标区域的法线方向上。
7.如权利要求5所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(2-4)包括:
步骤(2-4-a):根据视平面和目标区域的位置关系,求得目标区域左上角的点与视平面左上角的点确定的直线和目标区域右上角的点与视平面右上角的点确定的直线的交点即为视点所在的位置;根据视点和视平面的位置建立透视投影变换关系;
步骤(2-4-b):将二维码放置于视平面上,根据确定的透视投影变换关系,将二维码映射到目标区域。
8.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(3)中,包括以下步骤:
步骤(3-1):根据投影变换之后的结果采用LOOP逼近细分算法对目标区域的三角网格进行网格细分,使得投影变换之后目标区域内所有三角面片中的任意一个三角面片都不存在与投影变换到三维物体表面的二维码边界相交于三角面片内部的情况;如果不满足上述条件,则对目标区域的三角网格进行进一步细分,直到满足条件为止;二维码边界包括黑白模块边界和二维码整体的外围边界的集合;
步骤(3-2)将投影变换到三维模型表面的二维码黑色模块对应的三角面片分别沿视点与该三角面片重心连线方向进行凹陷操作,凹陷深度为Tmin,Tmin为设定值。
9.如权利要求1所述的面向3D打印的自定义模型立体二维码生成方法,其特征是,
所述步骤(4):将生成的含有立体二维码的模型导出为stl格式,并输入至3D打印机中,进行打印制作。
10.面向3D打印的自定义模型立体二维码生成系统,其特征是,包括:
预处理单元:包括:网格化和抽壳处理模块、分析模块和二维码目标区域寻找模块;
网格化和抽壳处理模块,被配置为:输入二维码和自定义3D模型,对输入的自定义3D模型进行网格化和抽壳处理;
分析模块,被配置为:对处理结果进行几何与结构分析;
二维码目标区域寻找模块,被配置为:在自定义3D模型表面寻找适合打印立体二维码的目标区域;
映射单元,被配置为:采用透视投影变换方法将二维码映射到目标区域;
凹陷单元,被配置为:根据映射结果进行凹陷操作,在自定义3D模型表面生成立体的二维码;
打印单元,被配置为:将生成的含有立体二维码的三维模型输入至3D打印机中,并通过单一材料的3D打印机进行打印,最后输出带有立体二维码的3D实物。