法律状态公告日
法律状态信息
法律状态
2019-12-27
专利权的转移 IPC(主分类):G06F17/50 登记生效日:20191206 变更前: 变更后: 申请日:20131113
专利申请权、专利权的转移
2016-08-31
授权
授权
2014-04-09
实质审查的生效 IPC(主分类):G06F17/50 申请日:20131113
实质审查的生效
2014-03-12
公开
公开
技术领域
本发明涉及计算机图形领域,是一种基于VRML技术的三维模型边界线提取方法。
背景技术
目前,对于三维模型边界线提取的研究主要有以下两方面:(1)从二位图像角度出发,通过一些图像处理方法提取边界线,提取结果是另一张图片,这种方法显然不可能包含每条边界线在三维中的解析式;(2)从实物出发,通过扫描或测量得到点云,再经过搜索算法得到属于边界线的点,最后在计算机上逆向建模。第二种方法可以获得边界线在三维中的解析式,能处理密集的点云数据,一般用于不适合人工建模的具有极度不规则形状的对象,且需要额外的三维扫描测量设备,成本较高,操作难度大,计算过程复杂。三维建模软件虽然能显示线框图,但是无法直接将线框图导出为可用于再开发的数据格式,这给应用三维模型边界线数据进行信息再处理造成不便。
对于任意的复杂三维模型,三维软件在导出VRML文件时,会将所有表面分割成不重复也不遗漏的一系列三角面,各三角面的位置和相互关系可由组成三角面的顶点及顶点外法向计算得到。因此,本发明提出一种边界线提取方法,用于从VRML文件中提取数据,通过一定的算法获得对应三维模型的边界线数据,很有必要。
发明内容
为了解决无法从三维建模软件中直接获得模型边界线数据的问题,本发明从三维模型出发,提供一种基于VRML技术的三维模型边界线提取方法,该方法适用范围广,可处理任意复杂形貌的三维模型。
本发明解决其技术问题所采用的技术方案是:
一种基于VRML技术的三维模型边界线提取方法,所述边界线提取方法包括以下步骤:
(1)读取VRML文件,文件扩展名为wrl,并采用正则表达式识别文本数据,然后将数据存储到数组中,数组包括单位法向量数组、线段数组和坐标数组;
(2)用户设定“法向量突变阀值T”,简称“阀值T”,一般取阀值T=0.2,阀值T的取值依据三维模型上最大曲率值,曲率越大,阀值T应取越大;
(3)将单位法向量数组内每一条法向量进行两两作差,同阀值T进行比较,若差向量的模小于等于阀值T,则认为两个法向量所对应的三角面是连续的面,面内不存在边界线,并且,如果这两个三角面内存在相同顶点的线段,则一定为面内不存在的边界线,称为“对角线”,删除这两条对角线;如果不存在,则表示两个三角面不属于同一面,不作处理;若差向量的模大于阀值T,则认为这两个三角面是不连续的面,并且,如果这两个三角面内存在相同顶点的线段,则一定为边界线,删除其中一条;如果不存在,则表示两个三角面不相交,不作处理;
(4)将剩余线段进行整理,得到线段数组,并且和坐标数组一起写入数据表格文件,文件扩展名为csv,保存到计算机磁盘中。
进一步,所述的基于VRML技术的三维模型边界线提取方法,其特征在于:所述步骤(1)中,所述的单位法向量数组是由三角面的三个顶点的法向量求和再取单位向量得到,所述的线段数组是由三角面三顶点两两相连得到。
再进一步,所述的基于VRML技术的三维模型边界线提取方法,其特征在于:所述步骤(2)中,所述阀值T的物理意义为:当法向量之差的模小于阀值T时,法向量夹角较小,面夹角接近0度,曲面连续性好。
本发明的技术构思为:本发明涉及的三维模型边界线提取方法,可将VRML格式文本中的图形数据通过识别和计算,得到模型所有边界线的坐标信息。该方法适用于具有复杂形貌的任意三维模型。
首先使用三维建模软件,如PRO/E、UG、SolidWorks、CATIA等,建立三维模型;然后将模型另存为VRML(扩展名为wrl)文件格式,选择输出版本为VRML97;然后利用本发明提出的三维模型边界线提取方法,从wrl格式文件中提取出三维模型的边界线数据。
边界线数据由两个数据表格组成,其中一个表格存储了所有的端点坐标值,每行三个元素表示端点空间直角坐标系中的坐标;另一个表格存储了每一条边界线的两个端点坐标的索引,每行两个元素表示一条边界线的两个端点的索引编号。由这两个数组可以确定模型中的所有边界线。
本发明的有益效果在于:该提取方法无需额外的设备或测量工具,数据量小,辅助数据充分,计算过程简单可靠,易编程,操作难度低,能精确地得到三维模型边界线数据;只要调整阀值即可识别具有不同曲率的曲面的三维模型;合理设置阀值,可以将大区率的圆角特征识别为边界线,而将小曲率的曲面识别为无边界的连续的面。
附图说明
图1是本发明提取边界线整体流程图
图2是对角线和重复线段去除流程图
图3是法向量突变阀值的物理含义示意图
图4是六棱柱处理前所有线段示意图
图5是六棱柱处理后所有线段示意图
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1至图5,并以六棱柱提取边界线为例,提供一种基于VRML技术的三维模型边界线提取方法。所述边界线提取方法包括以下步骤:
第一步,读取VRML文件,文件扩展名为wrl,文件所描述的三维图形信息主要由以下四部分组成:坐标点(Coordinate point)、点法向量(Normal vector)、三角面顶点序列(CoordIndex)、点法向序列(NormalIndex)。六棱柱模型对应的VRML文件主要内容如下:
coord Coordinate{#坐标点
point[
-17.32050900,-17.320509020,
-8.660254-150,-8.660254-1520,
-8.660254150,-8.6602541520,
8.660254-150,8.660254-1520,
8.660254150,8.6602541520,
17.32050900,17.320509020
]
}
normal Normal{#点法向量列表
vector[
-0.866025-0.50,-0.8660250.50,
0-10,00-1,001,010,
0.866025-0.50,0.8660250.50
]
}
coordIndex[#三角面顶点序列
1,5,0,-1,0,5,4,-1,3,1,2,-1,
2,1,0,-1,7,3,6,-1,6,3,2,-1,
11,7,10,-1,10,7,6,-1,9,11,8,-1,
8,11,10,-1,5,9,4,-1,4,9,8,-1,
9,5,11,-1,11,5,1,-1,11,1,7,-1,
7,1,3,-1,6,2,10,-1,10,2,0,-1,
10,0,8,-1,8,0,4,-1
]
normalIndex[#点法向序列
1,1,1,-1,1,1,1,-1,0,0,0,-1,
0,0,0,-1,2,2,2,-1,2,2,2,-1,
6,6,6,-1,6,6,6,-1,7,7,7,-1,
7,7,7,-1,5,5,5,-1,5,5,5,-1,
4,4,4,-1,4,4,4,-1,4,4,4,-1,
4,4,4,-1,3,3,3,-1,3,3,3,-1,
3,3,3,-1,3,3,3,-1
]
坐标点记录了模型上所有的端点和曲面经过多面体近似后得到的点的坐标值,按出现顺序指定编号0,1,2,3…,组成“点数组”,如表1所示。
表1点数组
点法向量记录的是每个点在原三维模型中的外法向三坐标值,且相同的外法向向量只记录一次,并按出现顺序指定编号0,1,2,3…,组成“点法向量数组”,如表2所示。
表2点法向量数组
三角面顶点序列记录了组成整个三维图形的所有三角形小平面对应顶点编号。每个三角面由三个顶点的编号组成,这里称为“三角面”,可表示为i-j-k形式,-1表示一个面的结束;同理,线段可表示为m-n形式。例如,三角面1-3-7表示由1、3、7三个点,即包含1-3、3-7、7-1三条线段。三角面三个顶点两两相连得到“线段数组”,如表3所示。
表3线段数组
法向序列和三角面序列一一对应,法向序列的一组包含三个对应三角面三个顶点的点法向量编号。将同一个三角面的三个法向量求和后取其单位向量,作为该三角面的“面单位法向量”,如公式
表4面单位法向量数组
第二步,用户设定“法向量突变阀值T”,简称“阀值T”,其物理含义为:当面i-j-k21的面单位法向量Ni-j-k22与面l-m-n26的面单位法向量Nl-m-n25之差P24的模小于阀值T时,法向量夹角θ23较小,夹角α27接近180度,曲面连续性好。所以T的取值依据为工件上最大曲率值,曲率越大,T值应取越大,一般取0.2。
第三步,参照图4,其中存在很多不必要的线段,如:面4-5-9-8由三角面5-9-4和4-9-8组成,面8-9-11-10由三角面9-11-8和8-11-10组成,其中线段4-9、9-4、11-8、8-11属于不真实存在的对角线,而线段9-8和8-9表示的是同一条边界线,需去除其中一条。
去除对角线和重复边界线的方法如下:(1)将面单位法向量两两作差,取差向量的模:
在六棱柱里具体实施如下:
表3和表4分别列出了三角面的三个线段组和面单位法向量,然后将任意两个面的面单位法向量作差后取差向量的模与阀值比较。在P≤T时是去除对角线的过程,对于该六棱柱模型,由于其没有曲面,可取T=0。编号为0和1这两个面,这两个三角面为1-5-0和0-5-4,根据表4的面单位法向量,求得其差向量的模为
表5对角线去除后线段
当不存在对角线的情况下,可以直接通过表5所有线段两两比较,若顶点相同,则删除其中一条重复线段,也可以通过所述阀值比较的方法删除两个不连续面的重复线段。如三角面1-5-0和三角面2-1-0这两个面,根据表4的面单位法向量,求得其差向量模为
第四步,为方便读取,将表6结果线段进行整理,得到线段数组,如表7所示,整理方法为:对该线段数组内容进行拆分,如原来的线段数组是通过字符串格式“0-5”的方式存储,排列成一列,拆分后变成数字格式“0”、“5”的方式存储。最后将表7的数组和坐标数组一起写入数据表格文件,文件扩展名为csv,保存到计算机磁盘中。
表6结果线段
表7结果线段数组
本发明的技术构思为:本发明涉及的三维模型边界线提取方法,可将VRML格式文本中的图形数据通过识别和计算,得到模型所有边界线的坐标信息。该方法适用于具有复杂形貌的任意三维模型。
首先使用三维建模软件,如PRO/E、UG、SolidWorks、CATIA等,建立三维模型;然后将模型另存为VRML(扩展名为wrl)文件格式,选择输出版本为VRML97;然后利用本发明提出的三维模型边界线提取方法,从wrl格式文件中提取出三维模型的边界线数据。
边界线数据由两个数据表格组成,其中一个表格存储了所有的端点坐标值,每行三个元素表示端点空间直角坐标系中的坐标;另一个表格存储了每一条边界线的两个端点坐标的索引,每行两个元素表示一条边界线的两个端点的索引编号。由这两个数组可以确定模型中的所有边界线。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围的不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
机译: 基于运动从外表看受限结构的三维模型提取方法
机译: 利用增强现实技术鼓励人们通过基于增强现实技术的三维模型进行主动观看的显示系统
机译: 基于合作专利分类的核心技术提取系统及其使用的核心技术提取方法