一种基于三棱柱剖分法的动态三维等值面提取方法

文档序号:6439139阅读:502来源:国知局
专利名称:一种基于三棱柱剖分法的动态三维等值面提取方法
技术领域
本发明属于三维图像处理领域,尤其是涉及一种基于三棱柱剖分法的动态三维等值面提取方法。
背景技术
目前,海洋温度场、盐度场等动态标量场的数据源主要有实测数据和数值模拟数据两大类,实测数据由于采样密度不足并且分布也不均,并不能很好满足实际应用的需要,而数值模拟数据利用海洋动力学模型,数据点密度可以人工控制,分布也相对均勻,可以较好的适应人类海上生产和生活的需要。海洋温盐度数据水平方向分布方式主要为规则格网和不规则三角网两类,垂直方向上一般采用 σ (sigma)坐标系,即随地形等比例分层的方式,将深度不同的海洋研究区域转化为等距以便于数值计算。因此,海洋温盐度数据在水平方向上是规则格网或不规则三角网结构,结合垂直方向的直线后,在三维空间中形成多层正方体或三棱柱结构。对于原始数据属于三维空间规则分布的动态数据场,如POM海洋动力学模型、用于医疗诊断的断层扫描仪等产生的数据,有较为完善的移动立方体(MC =Marching Cube)和移动四面体(MT =Marching Tetrahedra)方法求解等值面。MC方法步骤如下先找出待求等值面经过的体元的位置,然后在该体元内求出等值面并计算相关参数,最后由常用的图形软件包或图形硬件提供的面绘制功能绘制出等值面。但MC方法在单个正方体中求解等值面时存在等值面连接方式上的二义性,将造成等值面连接上的错误,为了解决这个问题, 在MC方法的基础上发展了 MT方法,该方法首先将立方体剖分为四面体,然后在四面体中构造等值面,可以避免MC方法中等值面连接方式二义性问题。采用移动立方体求解正方体结构数据的等值面时必须先对立方体进行剖分,具体有将立方体剖分为5个、6个或者M个四面体的解决方案,然后采取移动四面体方法求解等值面,从而避免连接方式的二义性。但随着FVCOM海洋动力学模型等生成的不规则三角网动态数据越来越丰富,对不规则三角网的三维等值面的应用也越来越广泛。对于这类不规则数据场在三维空间中构成的三棱柱的等值面求解方法主要分为直接法和间接法。直接法是直接在三棱柱中求解等值面,与MC方法相同,也存在等值面连接方式上的二义性问题。间接法是先将三棱柱剖分为3 个或8个四面体,然后采用MT的方法求解等值面,但在将三棱柱剖分为3个或8个四面体时,必须要严格保证相邻的三棱柱单元在公共四边形剖分的一致性,一般采取存储已剖分的三棱柱的剖分方式的方法,待剖分的三棱柱的剖分方式要由其相邻的已剖分的三棱柱的剖分方式决定,处理的方法较为复杂。如果不对剖分方式进行干预处理,就会带来剖分方式不一致的问题,即两个三棱柱在公共四边形划分为三角形的方式不一致,将导致最终建立等值面不连续。因此,本领域亟待研究新的剖分法和相应等值面提取方法。 发明内容
为了避免传统方法的连接方式不一致问题和剖分不一致的问题,本发明将三维空间中的三棱柱剖分为11个四面体,取代了传统将三棱柱剖分为3个或8个四面体的方法, 使得构造等值面方法简便,并且构造的等值面连续。本发明的技术方案为一种基于三棱柱剖分法的动态三维等值面提取方法,包括以下步骤
步骤a,加载第一时刻各层离散点数据,将第i层和第i+Ι层三角网对应的点组成第i 层三棱柱,i取值为1,2,…N-I,将N层三角网结构组合成N-I层三棱柱,N为三角网数据层数;
步骤b,对第1层三棱柱进行遍历,首先通过每个三棱柱顶点集合值的范围判断三棱柱是否包含等值面,如包含则将三棱柱剖分为11个四面体,并记录剖分形成的四面体数据结构,同时对三棱柱进行标记,如不包含等值面则不处理,直到本层所有三棱柱全部被处理完毕,再对下一层进行处理,直到所有层的三棱柱处理完毕;所述将三棱柱剖分为11个四面体的具体方式为,
首先,根据三棱柱的四边形顶点的值确定新增顶点位置,
对于4个顶点中有3个大于并有1个小于等值面值的四边形,由其中小于等值面值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
对于4个顶点中有1个大于并有3个小于等值面值的四边形,由其中大于等值面值的点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
对于4个顶点中有2个大于并有2个小于等值面值的四边形,取其中最小值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
对于4个顶点均大于或均小于等值面值的四边形时,直接连接四边形的两条对角线, 产生的对角线交点作为新增顶点,并通过距离反比法获取新增顶点的值;
然后,将三棱柱的3个四边形上所得共3个新增顶点两两相连构成3条边,取其中任1 个新增顶点与非本四边形的2个顶点分别相连构成2条边;
最后,以3个新增顶点与三棱柱的6个原有顶点共9个点作为四面体的顶点;以三棱柱的9条边、每个四边形中的新增顶点与该四边形4个顶点的4条连线共12条边,3个新增顶点两两相连构成的3条边,以及其中1个新增顶点与非本四边形的2个顶点分别相连的 2条边,共计沈条边作为四面体的边,将三棱柱剖分成11个四面体;
步骤c,加载已标记的三棱柱中原有顶点和新增顶点的值,对步骤b剖分形成的四面体数据结构进行遍历,根据四面体顶点集合值的范围判断四面体是否包含等值面,如包含则提取等值面,提取后所得等值面数据按照三角网方式进行存储,如遇到空间四边形则将其剖分为两个三角形,如四面体不包含等值面则不处理;
步骤d,对剩下的其他时刻各层离散点数据按照步骤a到c进行处理,直到所有时刻各层离散点数据处理完毕,然后将按照三角网方式进行存储的等值面数据由所在的ι坐行转换为平面直角坐标,最后依次输出各时刻对应的等值面在平面直角坐标系下的三角网数据;步骤e,如需提取多个等值面,对剩下的其他等值面按照步骤a到d进行处理,直到所有等值面处理完毕;按照时间顺序对所有等值面的三角网数据进行渲染,动态展示三维空间中的动态三维等值面。而且,步骤c中,提取等值面采用移动四面体算法实现。本发明提供的技术方案的有益效果为采用将三棱柱剖分为11个四面体的方法, 在避免三棱柱求解等值面过程中连接方式二义性的同时,又可以避免剖分方式不一致产生的等值面不连续问题,从而高效地求解三棱柱结构中动态连续的三维等值面。并且,三棱柱剖分时尽可能将新增顶点等于待求等值面值,在剖分三棱柱的同时求得等值点,并将等值点作为四面体的顶点,有机的将传统中完全分离的剖分和剖分后的插值部分进行融合,优化了提取等值面的整个过程。


图1是本发明实施例的流程图。图2是本发明实施例的三棱柱11剖分示意图。
具体实施例方式
本发明技术方案可采用计算机软件实现自动运行流程。本发明的实施例是采用FVCOM 模型生成的海洋温度场数据,其采用a坐标系,层数为6层,属于不规则三角形。参见图1, 以下结合附图和实施例详细说明本发明技术方案,实施例的步骤如下
步骤a,加载第一时刻各层离散点数据,将各层的点数据及三角网对应关系读入内存, 将第i层和第i+Ι层三角网对应的点组成第i层三棱柱,i取值为1,2,…N-1,即对首层及第二层的三角网对应的点组成的首层三棱柱,将第二层及第三层三角网组成第二层三棱柱,并依次将剩下的三角网组成三棱柱结构,从而将N层三角网结构组合成N-I层三棱柱结构,N为三角网数据层数。步骤b,剖分三棱柱。实施例对首层三棱柱进行遍历,首先通过每个三棱柱顶点集合值的范围判断三棱柱是否包含等值面,具体方法是先对待求三棱柱顶点进行遍历,记录三棱柱6个顶点集合的最小值min和最大值max,如果待求等值面值e [min, max],则三棱柱包含等值面,反之则不包含等值面。在三棱柱包含等值面时将其剖分为11个四面体,并记录剖分形成的四面体数据结构,同时对三棱柱进行标记。为按照尽可能将新增顶点等于待求等值面值的原则,将三棱柱剖分为11个四面体,实施例提出具体剖分方法如下
(1)对于4个顶点中有3个大于并有1个小于等值面值的四边形,由其中小于等值面值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
(2)对于4个顶点中有1个大于并有3个小于等值面值的四边形,由其中大于等值面值的点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
(3)对于4个顶点中有2个大于并有2个小于等值面值的四边形,取其中最小值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;
(4)对于4个顶点均大于或均小于等值面值的四边形时,直接连接四边形的两条对角线,产生的对角线交点作为新增顶点,并通过距离反比法获取新增顶点的值;
然后,将三棱柱的3个四边形上所得共3个新增顶点两两相连构成3条边,取其中任1 个新增顶点与非本四边形的2个顶点分别相连构成2条边;
最后,以3个新增顶点与三棱柱的6个原有顶点共9个点作为四面体的顶点;以三棱柱的9条边、每个四边形中的新增顶点与该四边形4个顶点的4条连线共12条边,3个新增顶点两两相连构成的3条边,以及其中1个新增顶点与非本四边形的2个顶点分别相连的 2条边,共计沈条边作为四面体的边,将三棱柱剖分成11个四面体。对于(1) (2) (3)中所得新增顶点,其值就是等值面值,通过距离反比法求得的是新增顶点的所在位置。对于(4)中以对角线交点作为新增顶点,新增顶点的位置由对角线交点确定,因此根据所在四边形的四个顶点采用距离反比法进行线性插值,求取新增顶点的值。距离反比法为现有技术,本发明不予赘述。参见图2,其中1、2、3、4、5、6表示原三棱柱的六个顶点,将3个新增顶点7、8、9两两相连构成3条边78、89、97,其中新增顶点7属于(4)中情况。取其中一个新增顶点与非本四边形的2个顶点相连构成2条边,例如取新增顶点8与顶点1、4构成81、84。3个新增顶点与原三棱柱的6个顶点共9个点作为四面体的顶点;三棱柱的9条边,每个四边形中的新增的4条连线共12条边,四边形中3个新增顶点两两相连构成的3条边,以及其中一个新增顶点与非本四边形顶点的2条连线,共计沈条边作为四面体的边;这样将三棱柱唯一的剖分成11个四面体。即将一个三棱柱剖分为图2中所示的11个四面体(1278)、(1238)、 (1389)、(1789)、(4578)、(4568)、(4689)、(4789)、(1479)、(2578)和(3689)。对首层三棱柱遍历完成后,再对下一层进行处理,直到所有层的三棱柱处理完毕, 最终标记所有等值面经过的三棱柱,并将其剖分为四面体结构。步骤c,遍历四面体进行等值面提取。实施例加载第一时刻,加载已标记的三棱柱中原有顶点和新增顶点的值,对步骤b 剖分形成的四面体数据结构进行遍历,根据四面体顶点集合的值的范围判断四面体是否包含等值面,如包含则提取等值面,提取后所得等值面数据按照三角网方式进行存储,如遇到空间四边形则将其剖分为两个三角形,如四面体不包含等值面则不处理。对四面体进行遍历时,记录每个四面体4个顶点所构成顶点集合的最小值min和最大值max,如果待求等值面值e [min, max],则四面体包含等值面,反之则不包含等值面。 然后对包含等值面的四面体进行等值面提取,提取方法可采用移动四面体算法,遍历每一个包含等值面的四面体求得等值三角面片,即通过四面体顶点和棱线求得所需要的等值面的三角片顶点。移动四面体算法是现有技术,即Marching Tetrahedra算法,本发明不予赘述。四面体在以下情况时不含等值三角面四面体顶点数据值全部大于或全部小于等值面值;四面体1个顶点等于而另3个顶点均小于(或均大于)等值面值;四面体2个顶点等于并且另2个顶点均大于(或小于)等值面值。四面体在以下情况时包含1个等值三角面 四面体1个顶点大于而另3个顶点小于(或1点小于而另3点大于)等值面值;四面体1 个顶点等于等值面值,剩余3个顶点有1个大于2个小于(或2个大于1个小于)等值面值;
6四面体2个顶点等于等值面值并且另2个顶点分别大于和小于等值面值;四面体3个顶点等于等值面时。四面体在以下情况时包含2个等值三角面四面体2个顶点大于而另2个顶点小于等值面值,则等值面是1个四边形,可分解为2个等值三角面。四面体四个顶点均等于等值面值时包含4个等值三角面。步骤d,对剩下的其他时刻各层离散点数据按照步骤a到c进行处理,直到所有时刻数据处理完毕;然后将步骤c所得按照三角网方式进行存储的等值面数据由所在的τ坐标系转换为平面直角坐标系。σ坐标在海洋动力学数值计算中较为常用,是将整个汁算域的水体厚度变换为统一的常量,将平面直角坐标系(x,y,z,t)转换为(X,y,ff,t)坐标系。 这里将a坐标系转换为平面直角坐标系。实施例对所有数据采用公式(1)进行转换并求得对应的ζ值
z = a{h+n(m + W)公式(1)
其中,ζ为平面直角坐标系下的高程值,h+ ? ¢)为t时刻对应位置的瞬时全水深,h为起算于基准面的水深,口④为t时刻瞬时水位距离基准面的垂直距离。转换后输出所有时刻对应的等值面在平面直角坐标系下的三角网数据。χ,y分别为X轴坐标和Y轴坐标,其值在τ坐标系转换为平面直角坐标系时保持不变。步骤e,对剩下的等值面按照步骤a到d进行处理,直到所有等值面处理完毕;按照时间顺序对所有等值面的三角网数据进行渲染,动态展示三维空间中的动态三维等值面。即如果需要获取多个等值面数据,可以分别对其他所需的每个等值面继续按照步骤a到步骤d循环处理,直至所有等值面全部处理完毕;然后对所有等值面平面直角坐标系下的三角网数据按照时间顺序进行三角网渲染,动态绘制三维空间中连续的三维等值面。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
权利要求
1.一种基于三棱柱剖分法的动态三维等值面提取方法,其特征在于,包括以下步骤 步骤a,加载第一时刻各层离散点数据,将第i层和第i+Ι层三角网对应的点组成第i层三棱柱,i取值为1,2,…N-1,将N层三角网结构组合成N-I层三棱柱,N为三角网数据层数; 步骤b,对第1层三棱柱进行遍历,首先通过每个三棱柱顶点集合值的范围判断三棱柱是否包含等值面,如包含则将三棱柱剖分为11个四面体,并记录剖分形成的四面体数据结构,同时对三棱柱进行标记,如不包含等值面则不处理,直到本层所有三棱柱全部被处理完毕,再对下一层进行处理,直到所有层的三棱柱处理完毕;所述将三棱柱剖分为11个四面体的具体方式为,首先,根据三棱柱的四边形顶点的值确定新增顶点位置,对于4个顶点中有3个大于并有1个小于等值面值的四边形,由其中小于等值面值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;对于4个顶点中有1个大于并有3个小于等值面值的四边形,由其中大于等值面值的点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;对于4个顶点中有2个大于并有2个小于等值面值的四边形,取其中最小值的顶点向对角的顶点进行连接,并在连接线上采用距离反比法求得等值面值所在位置作为新增顶点,并连接新增顶点和四边形中剩余2个顶点;对于4个顶点均大于或均小于等值面值的四边形时,直接连接四边形的两条对角线, 产生的对角线交点作为新增顶点,并通过距离反比法获取新增顶点的值;然后,将三棱柱的3个四边形上所得共3个新增顶点两两相连构成3条边,取其中任1 个新增顶点与非本四边形的2个顶点分别相连构成2条边;最后,以3个新增顶点与三棱柱的6个原有顶点共9个点作为四面体的顶点;以三棱柱的9条边、每个四边形中的新增顶点与该四边形4个顶点的4条连线共12条边,3个新增顶点两两相连构成的3条边,以及其中1个新增顶点与非本四边形的2个顶点分别相连的 2条边,共计沈条边作为四面体的边,将三棱柱剖分成11个四面体;步骤c,加载已标记的三棱柱中原有顶点和新增顶点的值,对步骤b剖分形成的四面体数据结构进行遍历,根据四面体顶点集合值的范围判断四面体是否包含等值面,如包含则提取等值面,提取后所得等值面数据按照三角网方式进行存储,如遇到空间四边形则将其剖分为两个三角形,如四面体不包含等值面则不处理;步骤d,对剩下的其他时刻各层离散点数据按照步骤a到c进行处理,直到所有时刻各层离散点数据处理完毕,然后将按照三角网方式进行存储的等值面数据由所在的 τ坐标转换为平面直角坐标,最后依次输出各时刻对应的等值面在平面直角坐标系下的三角网数据;步骤e,如需提取多个等值面,对剩下的其他等值面按照步骤a到d进行处理,直到所有等值面处理完毕;按照时间顺序对所有等值面的三角网数据进行渲染,动态展示三维空间中的动态三维等值面。
2.如权利要求1所述基于三棱柱剖分法的动态三维等值面提取方法,其特征在于步骤c中,提取等值面采用移动四面体算法实现。
全文摘要
本发明涉及一种基于三棱柱剖分法的动态三维等值面提取方法,将分层的离散三维不规则数据在空间中形成的三棱柱剖分为11个四面体,取代传统将三棱柱剖分为3个或8个四面体的方法,在避免三棱柱中求解等值面时连接方式的二义性的同时,又可以避免剖分方式不一致产生的等值面不连续问题,在三棱柱剖分时尽可能将新增顶点等于待求等值面值,在剖分三棱柱的同时求得等值点,并将等值点作为四面体的顶点,从而高效的求解三棱柱结构中的动态连续的三维等值面。
文档编号G06T19/00GK102509358SQ201110377199
公开日2012年6月20日 申请日期2011年11月24日 优先权日2011年11月24日
发明者刘军, 姚明, 姚远, 邵振峰 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1