基于点云裁剪的空间曲面生成方法

文档序号:6376006阅读:296来源:国知局
专利名称:基于点云裁剪的空间曲面生成方法
技术领域
本发明涉及一种基于点云裁剪的空间曲面生成方法。
背景技术
近年来点云技术在地质勘探,制造业方面有着重要的应用,而曲面重建是点云处理的核心内容,目前点云重构曲面技术主要的方法有如下几种;(I)基于曲面单元的重建算法基于曲面单元的重建算法是一种新的法矢检验算法,以类似推进波前的方式,沿着被测物体的表面逐步搜索局部最佳的法向直至所有点具有正确的方向;同时在每个点处生成局部球状的曲面单元,以曲面单元表达离散样点,该算
法没有充分考虑到含有约束条件的曲面重构问题。(2)基于B样条或者NURBS曲面为基础的四边域曲面重构方法它先根据边界构造一个初始曲面,然后将型值点投影到该初始曲面上,根据投影位置算出其参数分布,根据这一型值点参数分配拟合出一张新的B样条曲面,最后,对型值点参数进行优化,使拟合曲面离给定型值点误差最小,然后再用NURBS方法拟合成最终重构曲面。该方法对数据有严格的要求一是要求数据以张量积形式分布;二是型值数据不能变化太剧烈。(3)以三角形Bezier曲面为基础的三边域曲面重构方法其原理是将待处理数据作为一个整体来进行操作,根据数据的局部面的生成和实体生成方面的功能完成曲面的重构,它不能解决含有复杂逆断层的地质地层重构问题。近年来,已经有多种生成空间曲面的方法被提出来,并且应用到各个领域,但是由于应用领域的千差万别,数据量大小不同,没有一种方法适合所有的场合。与本发明相关的现有技术包括目前在空间点云技术上使用最多的是点云三角网格化技术,它能解决含有简单约束条件的曲面重构问题。在现有的点云技术上主要的是基于网格的处理技术,它的突出特点是以网格为中介来表达离散点之间的相互连接关系,将点云组织成一个整体,恢复空间曲面。网格化,特征提取,曲面重建等均以网格节点或者网格边作为考虑问题的基本出发点,它的优点在于以网格显示表达物体的拓扑结构,表示方式简单,直观,能表现形状的任意复杂的物体,目前得到了广泛的应用,它在地质勘探中的一个主要的作用是实现对空间层位曲面的重构,但是现有的技术不能很好地解决含有复杂逆断层的层位重构问题。当前国内外针对点云技术重构空间曲面的方案有很多,也有相当多的成熟软件产品。但是就目前来说,这些方案对于国内石油地质勘探来说,有其局限性现有的点云重构曲面的方法大多针对没有断层的层位或者含有简单的断层;或者虽然考虑到了正断层,但是逆断层和多重断层的情况没有考虑。

发明内容
为了克服现有技术的上述缺点,本发明提供了一种基于点云裁剪的空间曲面生成方法,解决了含有复杂逆断层条件下三维层位曲面生成问题。本发明解决其技术问题所采用的技术方案是一种基于点云裁剪的空间曲面生成方法,包括如下步骤步骤一、数据的导入;步骤二、利用约束多边形裁剪点云数据(I)计算断层多边形的Z值;(2)通过多边形裁剪算法获取新的多边形;(3)多边形裁剪点云数据;步骤三、点云数据分块处理( I)把所有的点投影到XY平面上;(2)找出包含所有点的最小矩形N;(3)对点云数据进行分块处理;步骤四、分别对多边形内数据、多边形外围数据进行三角网格化(I)对多边形外围数据进行三角网格化I)分区连三角形;2)所有的分区三角网格化完成后,分别对X,y方向上的区域进行合并;3)删除约束多边形内的三角形;( 2 )对多边形内数据进行三角网格化。与现有技术相比,本发明的积极效果是本发明提出了一种基于点云裁剪的空间曲面生成方法,实现了在复杂逆断层条件下曲面的重构,具有如下优点(I)支持各类断层,包括正断层、逆断层,具有很好的适应性。(2)利用数据分块的思路,把一个曲面上的数据分为约束条件内的数据和约束条件外的两部分数据,并分别进行三角网格化,很好地解决了数据量大的问题,提高了三角网格化的速度。(3)支持以复杂多边形为约束条件的各类应用,具有很好的通用性。(4)解决了一些复杂多边形的裁剪问题。


本发明将通过例子并参照附图的方式说明,其中图I是本发明方法的约束多边形裁剪点云数据流程图;图2是多边形相交情况下层位数据的划分示意图;图3是多边形相互包含情况下层位数据的划分示意图;图4是区域之间连接三角形的示意图。
具体实施例方式先对一些基本的地质结构和方案用语进行定义(I)层位是指在地层层序中的某一特定位置,地层的层位可以是地层单位的界线,也可以是属于某一特定时代的标志层等。(2)断层地壳岩层因受力达到一定强度而发生破裂,并沿破裂面有明显相对移动的构造。(3)数据分块利用特定的规则把大量的数据分成若干数据块的技术。(4)曲面重构利用空间上的点生成空间曲面的过程。(5)上盘点断层与上盘层位的所有交点。(6)下盘点断层与下盘层位的所有交点。(7) Delaunay三角剖分算法给定二维平面上的节点集合P= {PO, Pl, ···, Pnj ,其中n>3,假设这些点不全共线。若用dist(Pi,Pj)表示Pi与Pj的欧氏距离且区域
V(Pi) = {x I dist (x, Pi) <dist (x, Pj), X e R2, j关i}中包含的点到Pi的距离比到节点集合P中其他任意点Pj的距离都近,则称区域V(Pi)为点Pi的Voronoi图,Pi为V(Pi)的内核,其中R2为实数域。将节点集合P的所有相邻Voronoi多边形的内核相连,形成节点集合P的三角剖分DT,称这样的剖分结果为节点集合P的De Iaunay三角剖分,称DT中的三角形为De Iaunay三角形。从地质上来说,断层是岩体受力作用断裂后,两侧岩块沿断裂面发生显著位移的断裂构造,所以断层表现在地震解释系统中一般是比较陡峭的曲面结构,上盘相对上升的叫逆断层。断层多边形的形成对于实际的地质构造,层位与断层是严格相交的,在地震解释系统中,由于解释数据的精度问题,这个条件往往并不能满足。在本发明中,我们用给定层位与断层交线(称之为断层线)的方法,来达到层位与断层相交的目的。断层线分为上盘线和下盘线,上、下盘线组成一个三维空间中的多边形,称之为断层多边形。在含有复杂逆断层的情况下,逆断层的种类主要分为以下两种情况(I)层位完全断完的情况下形成的逆断层,即上、下盘层位完全断开;(2)层位没有断完的情况下形成的逆断层,即上、下盘层位没有完全断开;一种基于点云裁剪的空间曲面生成方法,包括如下步骤步骤一、数据的导入基于点云裁剪的空间曲面生成方法主要解决的是地质勘探中空间层位曲面的生成问题,因此输入的数据必须为剖面点云数据。假设SpacePoint为空间点集,Pointi为空间的某个点,它的坐标分别为x, y, z。index为每个点的标号数据,类型为double类型,faultageFlag为断层属性,值为I说明此点在断层上,值为O说明此点在层位上,IayerFlag表示点处于层位的第几层,它们的关系用集合表示如下SpacePoint= (Point1, Point2. . . Pointi. . . }Pointi= {x, y, z, index, faultageFlag, layerFlag}步骤二、利用约束多边形裁剪点云数据( I)计算断层多边形的Z值通过上、下盘线得到断层多边形,通过层位数据和断层数据之间的关系,分别计算断层多边形的Z值。(2)通过多边形裁剪算法获取新的多边形在含有多重逆断层的情况下,形成了多个断层多边形,将这些断层多边形投影到xy平面后,它们的关系主要分为两种情况情况一两个断层多边形相交;情况二 一个断层多边形包含另一个断层多边形。我们定义断层集合为F,第i个断层的多边形集合为Polyi,第i个断层多边形的边集合为b0undaryi,poly为所有的断层多边形的边集合,它们的关系可用如下集合来表示F= (Poly1, Poly2.....Polyi.....}poly= {boundary!, boundary2. . . . IDoundaryi.....}boundaryj= (Point1, Point2. . . Pointi.....}通过多边形裁剪算法对上述两种关系的断层多边形进行裁剪得到的断层多边形的种类Fault可用如下集合来描述=Faultl代表两个断层多边形投影到xy平面后相交的情况下通过多边形裁剪算法得到的新的断层多边形,Fault2代表两个断层多边形投影到xy平面后一个包含另一个的情况下通过多边形裁剪算法得到的新的断层多边形,它们的关系可以用如下集合来表示Fault= {Faultl, Fault2}(2)多边形裁剪点云数据矩形N为包含所有点的最小矩形,以BiOkenLinei表示裁剪后某个封闭体的某条边界,以集合Data表示划分后的数据,Pointi代表空间某个点,BlockPointsi表示某个封闭体的所有信息,其中Points表示封闭体内的空间层位点,externalEdge为封闭体的外边界,InternalEdgei表示某个封闭体的内边界,allpoints表示所有空间层位点集合,它们的关系可用如下集合来表示BrokenLinei= (Point1, Point2. . . Pointi.....}InternalEdgei= (BrokenLine1, BrokenLine2. . . BrokenLinei. . . }externalEdge= (InternalEdge1, internalEdge2. . . InternalEdgei. . . }BlockPointsi= {Points, externalEdge, internalEdgeJBlockPoints= (BlockPoints1, BlockPoints2. . . BlockPointsi. . . }Data={allpoints, externalEdge, BlockPoints}多边形裁剪点云技术是指以断层多边形为约束条件裁剪空间一个剖面的所有层位数据,裁剪后的结果是由许多的封闭体BlockPoints组成,具体方法如图I所示,包括如下步骤I)获取所要划分的层位数据,遍历每个层位数据段;2)判断层位数据段是否具有封闭关系如果有封闭关系则进入步骤5);否则进入步骤3);3)将层位数据放入最外层多边形中并把层位数据存入PolyOutPoint ;4)判断层位数据是否遍历完如果没有,则遍历下一段,并执行步骤2);如果遍历完则结束;5)遍历所有断层多边形(此断层多边形为上述已经裁剪好的断层多边形),找到包含此段的断层多边形,并且使用线段和多边形之间的裁剪算法获取线段在多边形内的层位段数据并存入断层多边形内数据PolyInPoint中,并执行步骤6);6)根据这个多边形与其它多边形的上下关系获取到这个层位数据段的层次关系,并给相应层位数据段的IayFlag赋值(IayFlag来标志层位数据段的层次关系),进入步骤4)。这样通过多边形对层位数据的裁剪,层位数据PointAll分成断层多边形外围数据PolyOutPoint和断层多边形内数据PolylnPoint。PolyOutPoin、PolyInPoint的组成主要分为以下两种情况①两个断层多边形投影到xy平面相交的情况如图2所示,图中实线代表上盘线,虚线代表下盘线,实线上的点为上盘点,虚线上的点为下盘点,图中区域1,区域2,区域3内所有层位数据的集合分别用PolyInPointl, PolyInPoint2, PolyInPoint3来表示,此时断层多边形内点的集合PolyInPoint可以用以下集合来表示PolyInPoint={PoIyInPointi, PolyInPoint2, PolyInPoint3}PolyOutPoin的划分分为两种情况情况一层位完全断完的情况,以PolyOutPoin上代表上盘层位内不包含在断层多边形内的所有层位数据,以PolyOutPoin 了代表下盘层位内不包含在断层多边形内的所有层位数据,此时断层多边形外围数据PolyOutPoint可以用如下集合来表示PolyOutPoint={PolyOutPoinT, PolyOutPoin上}情况二 层位没有完全断完的情况,此时PolyOutPoint为上、下盘层位内不包含在断层多边形内的所有层位数据。②断层多边形投影到xy平面上一个多边形包含另外一个多边形的情况如图3所示,实线代表上盘线,虚线代表下盘线,实线上的点为上盘点,虚线上的点为下盘点,图中区域I,区域2内所有层位数据的集合分别用PolyInPointl,PolyInPoint2来表示,此时断层多边形内点的集合PolyInPoint可以用以下集合来表示PolyInPoint={PoIyInPointi, PolyInPoint2}PolyOutPoin的划分分为两种情况情况一层位完全断完的情况,以PolyOutPoin上代表上盘层位内不包含在断层多边形内的所有层位数据,以PolyOutPoin 了代表下盘层位内不包含在断层多边形内的所有层位数据,此时断层多边形外围数据PolyOutPoint可以用以下集合来表示PolyOutPoint={PolyOutPoinT, PolyOutPoin上}情况二 层位没有完全断完的情况,此时PolyOutPoint为上、下盘层位内不包含在断层多边形内的所有层位数据。步骤三、点云数据分块处理(I)把所有的点投影到XY平面上;(2)找出包含所有点的最小矩形N;(3)对点云数据进行分块处理把N分成几个面积相等的正方形,具体的分法如下I)首先求出每个子区域的面积。2)求出每个子区域的宽度。3)如果矩形N的面积小于所有正方形的面积之和则对N进行面积扩充假设N 的面积是 ZoneSize,它的四个顶点分别(xmin, ymin), (xmin, ymax), (xmax,ymin), (xmax, ymax),每个子矩形的宽度为Lenth,每个子区域的面积为SubzoneSize,用户自定义每个区域点的个数为totalSubZoneNum,所有点的个数为TotalNum,子区域的个数为SubNum, X, y方向的段的个数分别为xsubzonenum, ysubzonenum则SubNum=TotalNum/totalSubZoneNum ;SubzoneSiZe=ZoneSize/SubNum ;Lenth=sqrt (SubzoneSize);对N进行面积扩充xsubzonenum=(int)((xmax-xmin)/subZoneLength)+1 ;ysubzonenum=(int)((ymax-ymin)/subZoneLength)+1 ;xmax=xmin+(double)xsubzonenum氺Lenth ;ymax=ymin+(double)xsubzonenum氺Lenth ;求出每个子区域内点的个数,如果某个子区域的点数小于三个则合并到它的前一个子区域中。点云分块处理的优点点云分块处理利用分块的思想提高了三角网格化的速度。步骤四、分别对多边形内数据、多边形外围数据进行三角网格化(I)对多边形外围数据进行三角网格化I)分区连三角形首先对所有的点进行编号,对已经分好的子区域分别利用Delaunay三角剖分方法分别进行三角网格化,用intp[3]存放三角形三个顶点的数组,Trianglei代表某个分区内的一个三角形,某个分区内的所有三角形Triangle可以用如下集合来表示Triangle= (Triangle1, Triangle2.....Trianglei. . . . }Trianglei= {intp [3]}2)所有的分区三角网格化完成后,分别对x,y方向上的区域进行合并,合并的方法为将每个区域的边界点连成三角形,它利用了分治算法的思想,分治算法的合并是个递归的过程,包括左右子网合并和上下子网合并,具体的合并步骤如下a.获取底边B1B2 (BI在子网Xl上,B2在子网X2上,如图4所示)。扫描线算法中已经得到了两子网右凸壳的最底点BI和左凸壳的最底点B2,所以底边获取比较容易,但如果待合并的网间有点在线B1B2之下时,就需把BI适当右移,或者B2适当左移。b.获取顶边T1T2,方法同步骤a。c.从底边B1B2向上搜索新的顶点B3,产生新三角形B1B2B3,并更新底边,当B3在子网Xl上时,新的底边为B2B3,反之,如果B3在子网X2上时,新的底边为B1B3。至于B3的选择,尽量选取子网Xl右凸壳和子网X2左凸壳上y值较小的点,这样能保证得到的三角形尽量最优,减少后面LOP优化的次数;同时,还要保证新的底边不能和凸壳有相交。三角形优化工作最后一并进行。凸壳上每个点都有指向其所在三角形的指针,在构建网间三角形时,也要建立新旧三角形之间的拓扑关系。d.重复执行步骤C,当新的底边与顶边T1T2重合时终止。利用上述分治思想分别对X方向,Y方向进行子网合并。3)删除约束多边形内的三角形,首先遍历所有的点并判断它们是否在断层上,如果在断层上再判断与这个点相关的三角形是否在断层多边形内,如果三角形在某个断层多边形内,则删除这个三角形的所有顶点及所有边。
(2)对多边形内数据进行三角网格化分别对PolyInPoint的所有子集合数据进行Delaunay三角剖分。
权利要求
1.一种基于点云裁剪的空间曲面生成方法,其特征在于包括如下步骤 步骤一、数据的导入; 步骤二、利用约束多边形裁剪点云数据 (1)计算断层多边形的Z值; (2)通过多边形裁剪算法获取新的多边形; (3)多边形裁剪点云数据; 步骤三、点云数据分块处理 (1)把所有的点投影到XY平面上; (2)找出包含所有点的最小矩形N; (3)对点云数据进行分块处理; 步骤四、分别对多边形内数据、多边形外围数据进行三角网格化 (1)对多边形外围数据进行三角网格化 1)分区连三角形; 2)所有的分区三角网格化完成后,分别对X,y方向上的区域进行合并; 3)删除约束多边形内的三角形; (2)对多边形内数据进行三角网格化。
2.根据权利要求I所述的基于点云裁剪的空间曲面生成方法,其特征在于所述多边形裁剪点云数据,包括如下步骤 1)获取所要划分的层位数据,遍历每个层位数据段; 2)判断层位数据段是否具有封闭关系如果有封闭关系则进入步骤5);否则进入步骤3); 3)将层位数据放入最外层多边形中并把层位数据存入断层多边形外围数据PolyOutPoint ; 4)判断层位数据是否遍历完如果没有,则遍历下一段,并执行步骤2);如果遍历完则结束; 5)遍历所有已经裁剪好的断层多边形,找到包含此段的断层多边形,并且使用线段和多边形之间的裁剪算法获取线段在多边形内的层位段数据并存入断层多边形内数据PolyInPoint中,并执行步骤6); 6)根据该多边形与其它多边形的上下关系获取到该层位数据段的层次关系,并给相应层位数据段的IayFlag赋值,然后进入步骤4)。
3.根据权利要求I所述的基于点云裁剪的空间曲面生成方法,其特征在于所述对X,y方向上的区域进行合并的方法为 a.获取底边B1B2,其中BI在子网Xl上,B2在子网X2上; b.获取顶边T1T2; c.从底边B1B2向上搜索新的顶点B3,产生新三角形B1B2B3,并更新底边当B3在子网Xl上时,新的底边为B2B3,反之,如果B3在子网X2上时,新的底边为B1B3 ; d.重复执行步骤C,当新的底边与顶边T1T2重合时终止。
4.根据权利要求I所述的基于点云裁剪的空间曲面生成方法,其特征在于所述删除约束多边形内的三角形的方法为首先遍历所有的点并判断它们是否在断层上,如果在断层上再判断与这个点相关的三角形是否在断层多边形内,如果三角形在某个断层多边形内,则删 除这个三角形的所有顶点及所有边。
全文摘要
本发明公开了一种基于点云裁剪的空间曲面生成方法,实现了在复杂逆断层条件下曲面的重构,利用数据分块的思路,把一个曲面上的数据分为约束条件内的数据和约束条件外的两部分数据,并分别进行三角网格化,很好地解决了数据量大的问题,提高了三角网格化的速度。本发明的积极效果是支持各类断层,包括正断层、逆断层,具有很好的适应性;支持以复杂多边形为约束条件的各类应用,具有很好的通用性;解决了一些复杂多边形的裁剪问题。
文档编号G06T17/30GK102881048SQ20121031686
公开日2013年1月16日 申请日期2012年8月31日 优先权日2012年8月31日
发明者姚兴苗, 蒋有文 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1