发明名称 一种基于二次误差测度的层位面拟合方法
摘要 一种基于二次误差测度的层位面拟合方法,包括以下步骤:数据输入及预处理;拟合区域确定;计算采样点的二次误差测度矩阵;将采样点分配给每个待调整的网格顶点;利用二次误差测度矩阵调整网格顶点。本发明提出一种基于二次误差测度的层位面拟合方法,可以根据输入的采样点和断层面,对已重构的层位面进行变形,使得变形后的层位面更符合输入点的形状。相对于现有的网格变形方法,本发明使用简便,速度快,可以较好地解决网格模型局部变形的问题。
申请公布号 CN101702237A 申请公布日期 2010.05.05
申请号 CN200910213093.5 申请日期 2009.11.10
申请人 南京大学 发明人 唐杰;武港山;李素云
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 南京天翼专利代理有限责任公司 32112 代理人 黄明哲
主权项 1.一种基于二次误差测度的层位面拟合方法,其特征是包括以下步骤:步骤1:数据输入及预处理输入的数据包括层位面和断层面以及层位面的初始采样点,层位面和断层面以三角网格表示;预处理包括层位面与断层面的交线的求取,定义层位面的内边界为层位面与断层面相交处的交线,层位面的外边界为其原来的边界,内边界是由于断层面切割或其它层位面穿刺而造成的,此类断层面和层位面统称为约束曲面,断层面切割层位面有四种类型,分别称为不完全切割、半完全切割-1、半完全切割-2、完全切割,针对以上四种类型应用网格求交算法,得到交线数据;步骤2:拟合区域确定拟合时不只对内边界上的网格顶点进行调整,内边界上某网格顶点调整后,对其一定范围内的邻近网格顶点也进行相应调整,调整范围的确定方法为:对于交线上的每个网格顶点V<sub>i</sub>,找到其在断层面约束下的最近采样点NearSV,设V<sub>i</sub>与NearSV之间距离d=||V<sub>i</sub>-NearSV||,在断层面约束下搜索以V<sub>i</sub>为球心d为球半径的范围内的所有网格顶点,这些网格顶点就是需调整的邻近网格顶点,遍历完交线上所有的网格顶点后得到的调整范围内的邻近网格顶点之和,即为此次拟合时内边界附近所有调整顶点;步骤3:计算采样点的二次误差测度矩阵在三维欧氏空间中,一个平面可以表示为ax+bx+cz+d=0,平面法向量为n=(a,b,c)<sup>T</sup>,平面方程可写为n<sup>T</sup>v+d=0,空间一点v=(x,y,z)<sup>T</sup>到该平面距离平方为D<sup>2</sup>(v)=(ax+by+cz+d)<sup>2</sup>     =(n<sup>T</sup>v+d)<sup>2</sup>     =(n<sup>T</sup>v+d)(n<sup>T</sup>v+d)     =(v<sup>T</sup>n+d)(n<sup>T</sup>v+d)     =v<sup>T</sup>(nn<sup>T</sup>)v+2(dn)<sup>T</sup>v+d<sup>2</sup>可以记为三元组Q=(A,b,c)Q为二次误差测度矩阵,其中<maths num="0001"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><msup><mi>nn</mi><mi>T</mi></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><mi>a</mi><mn>2</mn></msup></mtd><mtd><mi>ab</mi></mtd><mtd><mi>ac</mi></mtd></mtr><mtr><mtd><mi>ab</mi></mtd><mtd><msup><mi>b</mi><mn>2</mn></msup></mtd><mtd><mi>bc</mi></mtd></mtr><mtr><mtd><mi>ac</mi></mtd><mtd><mi>bc</mi></mtd><mtd><msup><mi>c</mi><mn>2</mn></msup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>b</mi><mo>=</mo><mi>dn</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>ad</mi></mtd></mtr><mtr><mtd><mi>bd</mi></mtd></mtr><mtr><mtd><mi>cd</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>c=d<sup>2</sup>具体针对每个采样点s<sub>i</sub>,首先找到其最近k个采样点,k由用户指定,在寻找过程中,保证采样点和其最近点都位于断层面及其延长面的同一边,找到k个最近采样点后,用主成分分析法计算s<sub>i</sub>的单位法矢(a,b,c),d=(a,b,c)*s<sub>i</sub>,则采样点的二次误差测度矩阵可以如下计算:a<sup>2</sup>=a*a;ab=a*b;ac=a*c;ad=a*d;b<sup>2</sup>=b*b;bc=b*c;bd=b*d;c<sup>2</sup>=c*c;cd=c*d;d<sup>2</sup>=d*d;步骤4:将采样点分配给每个待调整的网格顶点将采样点向以v<sub>i</sub>为顶点的所有三角网格做投影,如果某个采样点的投影点落在这些三角网格内,则将该采样点分配给v<sub>i</sub>,用于v<sub>i</sub>的调整;步骤5:利用二次误差测度矩阵调整网格顶点采用二次误差矩阵计算某网格顶点到多个采样点所在切平面的距离平方的和,并利用该式求得网格顶点拟合的最佳位置,调整网格顶点v<sub>i</sub>使v<sub>i</sub>到所有分配给它的n个采样点切平面的距离的平方和最小:即<img file="F2009102130935C0000023.GIF" wi="800" he="65" />最小,D<sup>2</sup>(v)为二次表达式,找到其最小值是一个线性问题,对D<sup>2</sup>(v)求导可得:<maths num="0003"><![CDATA[<math><mrow><mo>&dtri;</mo><msup><mi>D</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mo>=</mo><mn>2</mn><mi>Av</mi><mo>+</mo><mn>2</mn><mi>b</mi></mrow></math>]]></maths>解上式,得:v′<sub>i</sub>=-A<sup>-1</sup>b由采样点二次误差测度矩阵解出v<sub>i</sub>的新位置,即新顶点v<sub>i</sub>’的位置,对原网格顶点v<sub>i</sub>进行调整;对所有要调整的网格顶点使用上述过程进行调整后,则完成了一次拟合。
地址 210093 江苏省南京市汉口路22号