[发明专利]基于改进边界代数法的相交多边形提取方法有效
申请号: | 201810731268.0 | 申请日: | 2018-07-05 |
公开(公告)号: | CN108985306B | 公开(公告)日: | 2020-03-31 |
发明(设计)人: | 周琛;李满春;陈振杰;姜朋辉;程亮 | 申请(专利权)人: | 南京大学 |
主分类号: | G06K9/46 | 分类号: | G06K9/46 |
代理公司: | 南京同泽专利事务所(特殊普通合伙) 32245 | 代理人: | 赵洪玉 |
地址: | 210023 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明涉及一种基于改进边界代数法的相交多边形提取方法,包括以下步骤:对所有图层中的多边形顺序进行编号;计算包含所有图层的MBR,数组 |
||
搜索关键词: | 基于 改进 边界 代数 相交 多边形 提取 方法 | ||
【主权项】:
1.一种基于改进边界代数法的相交多边形提取方法,包括以下步骤:步骤一、对所有图层中的多边形顺序进行编号,每个多边形对应唯一的多边形ID;步骤二、计算包含所有图层的MBR,根据栅格尺寸,生成初始值为0的数组hDstDS以存放栅格单元的属性值,其大小为nYSize行×nXSize列,同时生成与数组hDstDS相同大小、初始值为‑1的数组pIDArray以存放多边形ID;生成一个新的数组RLEGroup以存放游程;其中,一个栅格行中栅格单元的属性值为pNum的游程定义为RLE{StartX,EndX,LocateY,(pID0,pID1,…,pIDpNum‑1),pNum};其中,StartX和EndX为该栅格行中属性值为pNum的起始栅格单元与结束栅格单元的横坐标,LocateY为该栅格行的纵坐标,(pID0,pID1,…,pIDpNum‑1)为存放相交多边形ID的数组pGroup;步骤三、对步骤一中的所有多边形使用边界代数算法依次进行栅格化,在栅格化过程中赋予各多边形的属性值均为1,并更新数组hDstDS的值为栅格单元的属性值;在数组hDstDS中获取当前多边形MBR包含的栅格单元,并逐行读取,对于纵坐标为LocateY的栅格行中的任一栅格单元(StartX,LocateY),若该栅格单元位于该多边形内部,则计算其在hDstDS中的存放位置locate=LocateY×nXSize+StartX,并获取其属性值value=hDstDS[locate];1)若该栅格单元的属性值value<2,则该栅格单元仅位于一个多边形内部,不予处理;2)若该栅格单元的属性值value=2,则该栅格单元位于两个相交多边形内部;在该栅格行中以当前栅格单元为起点继续扫描后续栅格单元,以形成从栅格单元(StartX,LocateY)至栅格单元(EndX,LocateY)的栅格序列,其中StartX≤EndX;上述栅格序列中的任一栅格单元(LocateXi,LocateY),StartX≤LocateXi≤EndX,须位于该多边形内部,并满足以下条件:
这样,该栅格序列中的所有栅格单元均位于两个相交多边形内部;同时,这两个相交多边形ID分别为pIDArray[locate]和pCurrentID;创建一个新的游程以存放上述栅格序列,该游程可表示为{StartX,EndX,LocateY,(pIDArray[locate],pCurrentID),2},并将该游程存放至数组RLEGroup中;3)若该栅格单元的属性值value>2,则该栅格单元位于三个或三个以上相交多边形内部;在该栅格行中以当前栅格单元为起点继续扫描后续栅格单元,以形成从栅格单元(StartX,LocateY)至栅格单元(EndX,LocateY)的栅格序列,其中StartX≤EndX;上述栅格序列中的任一栅格单元(LocateXi,LocateY),其中StartX≤LocateXi≤EndX,须位于多边形内部,并满足以下条件:
这样,该栅格序列中的所有栅格单元均位于value个相交多边形内部,其中一个多边形ID为pCurrentID,另外value‑1个多边形ID存放于已有的游程中;从栅格单元(max(StartXj,StartX),LocateY)至栅格单元(min(EndXj,EndX),LocateY),搜索包含value‑1个多边形ID的游程RLEj{StartXj,EndXj,LocateY,(pID0,pID1,…,pIDvalue‑2),value‑1},首先将其分解为两个新的游程,分别为{StartXj,max(StartXj,StartX)‑1,LocateY,(pID0,pID1,…,pIDvalue‑2),value‑1}和{min(EndXj,EndX)+1,EndXj,LocateY,(pID0,pID1,…,pIDvalue‑2),value‑1},其中min(EndXj,EndX)≤EndXj,StartXj≤min(StartXj,StartX),并将两个新的游程放入数组RLEGroup中,然后将原游程RLEj从数组RLEGroup中删除;同时生成一个新的游程{max(StartXj,StartX),min(EndXj,EndX),LocateY,(RLEj.pGroup,pCurrentID),value},并将其放入数组RLEGroup中;步骤五、更新数组pIDArray,将当前多边形ID值赋给数组pIDArray中位于当前多边形内部的栅格单元;步骤六、从数组RLEGroup存储的游程中提取相应的相交多边形组,即每个游程中的数组pGroup即对应一个相交多边形组。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810731268.0/,转载请声明来源钻瓜专利网。