[发明专利]一种无冗余计算的高效Marching Cubes等值面提取方法与系统有效
申请号: | 201910290205.0 | 申请日: | 2019-04-11 |
公开(公告)号: | CN110021059B | 公开(公告)日: | 2023-02-07 |
发明(设计)人: | 王文珂;吴诚竹;张潇;朱小谦;邹丹;吴亚刚;陆丽娜;夏飞 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06T15/08 | 分类号: | G06T15/08;G06T17/10 |
代理公司: | 长沙国科天河知识产权代理有限公司 43225 | 代理人: | 邱轶 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 冗余 计算 高效 marching cubes 等值 提取 方法 系统 | ||
1.一种无冗余计算的高效Marching Cubes等值面提取方法,其特征在于,利于额外的数据结构存储立方体中能够重复利用的边上的插入顶点的坐标,以及用一个数组存储立方体中八个顶点的最大值、最小值,在比较时先分别比较最大值、最小值与等值面的值的关系;
具体包括以下步骤:
第一步:申请包含两个int类型的变量的结构体,分别存储单个立方体中的最大值和最小值;
第二步:以先X方向再Y方向,最后Z方向遍历所有的立方体以减少冗余计算,根据以上遍历方式将所有的立方体分成八种情形:①:x=y=0,z=0、②:x≥1,y=0,z=0、③:x=0,y≥1,z=0、④:x≥1,y≥1,z=0、⑤:x=y=0,z≥1、⑥:x≥1,y=0,z≥1、⑦:x=0,y≥1,z≥1、⑧:x≥1,y≥1,z≥1;
申请数组来存储能够减少冗余计算的边上的插入点,对于以上八种情形有以下的存储结构:
情形一:用三个数据结构分别存储X(4,5,6,7),Y(0,4,8,9),Z(3,7,8,11)方向上的四个边上的插入点;
情形二:用情形一X方向上的数据结构继续存4,5,6,7边上的插入点,再用一个大小为X方向立方体个数减一的一维数组存储该方向上每个立方体0,4,8,9边上的插入点;
情形三:用情形一Y方向上的数据结构继续存0,4,8,9边上的插入点,再用一个大小为Y方向立方体个数减一的一维数组存储该方向上每个立方体4,5,7边上的插入点;
情形四:用情形二中的一维数组存储0,4,8,9边上的插入点,用情形三中的一维数组存储4,5,7边上的插入点,再用一个大小为X方向立方体个数减一乘以Y方向立方体个数减一大小的二维数组存储7,8边上的插入点;
情形五:用情形一Z方向上的数据结构存3,7,8,11边上的插入点;
情形六:在情形二存储结构基础上再用一个大小为X方向立方体数减一的一维数组存储7,8,11边上的插入点;
情形七:在情形三存储结构基础上再用一个大小为Y方向立方体数减一的一维数组存储3,7,8边上的插入点;
情形八:存储结构与情形四一样;
第三步:遍历所有立方体,将每个立方体的最大值、最小值存储在固定的数据结构中;
第四步:在计算与等值面相交的点之前利用第二步存储的最大值、最小值判断该立方体中是否存在与等值面的交点,如果存在交点则执行第五步,否则继续对下一个立方体从第三步开始进行判断;
第五步:情形一、二、三、四依次处理完各个数据,情形五、六、七、八放在一个大循环中处理;
第五步中,对每种情形中的每个立方体的处理步骤为:
Ⅰ、判断各个情形的数据中每个立方体顶点的值与阈值的大小关系进而得到一个索引值,之后根据索引值查找情形二、情形五、情形六的一维数组,获取立方体12条边中具有交点的边;
Ⅱ、获取立方体12条边中具有交点的边后:
对于情形一中的立方体,每条边都要计算;
对于情形二中的立方体,第0,1,2,3,条边上的插入点的值可以从前面的提到的存储4,5,6,7边结构中取出,不用计算,其它边照常计算;
对于情形三中的立方体,第2,6,10,11边上的插入点的值从存储0,4,8,9边结构中取出,不用计算,其它边照常计算;
对于情形四中的立方体,第2,6,10,11边上的插入点的值从存储0,4,8,9边结构中取出,第0,1,3边上的值从存储4,5,7边结构中取出,不用计算,其它边照常计算;
对于情形五中的立方体,第1,5,9,10边上的插入点的值从存储3,7,8,11边结构中取出;
对于情形六中的立方体,第0,1,2,3边上的插入点从存储4,5,6,7边结构中取出,第5,9,10边上的插入点从存储7,8,11边结构中取出,不用计算,其它边照常计算;
对于情形七中的立方体,第2,6,10,11边上的插入点的值从存储0,4,8,9边结构中取出,第1,5,9边上的插入点从存储3,7,8边结构中取出,不用计算,其它边照常计算;
对于情形八中的立方体,第2,6,10,11边上的插入点的值从存储0,4,8,9边结构中取出,第0,1,3边上的值从存储4,5,7边结构中取出,第5,9边上的插入点的值从存储7,8边结构中取出,不用计算,其它边照常计算;
Ⅲ、处理完立方体的每条边后,按照第一步提到的把每种情形中后面能够利用的边上的插入点的值再存储到对应结构中;
Ⅳ、查找情形二、情形五、情形六的二维数组,提取每种情形的等值面,绘制成图像。
2.一种无冗余计算的高效Marching Cubes等值面提取系统,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910290205.0/1.html,转载请声明来源钻瓜专利网。