CN113129320B - 一种从航空正射影像中提取养殖水塘边界的方法和系统 - Google Patents
一种从航空正射影像中提取养殖水塘边界的方法和系统 Download PDFInfo
- Publication number
- CN113129320B CN113129320B CN202110347497.4A CN202110347497A CN113129320B CN 113129320 B CN113129320 B CN 113129320B CN 202110347497 A CN202110347497 A CN 202110347497A CN 113129320 B CN113129320 B CN 113129320B
- Authority
- CN
- China
- Prior art keywords
- pond
- boundary
- pixel
- pixels
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10032—Satellite or aerial image; Remote sensing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种从航空正射影像中提取养殖水塘边界的方法,包括:1、建立候选检测点集合;2、从候选检测点集合Sc‑dtc中筛选检测点;3、根据检测点集合Sdtc提取航空DOM影像中的水塘像素;4、提取水塘像素的边界;5、提取水塘阴影;水塘阴影与水塘像素构成航空DOM影像中水塘的全部像素集合;6、对整幅影像计算水塘边界并简化。该方法能够减少阴影和其它地物对水塘边界提取的影响,提取到精确的养殖水塘边界。
Description
技术领域
本发明属于航空测绘技术领域,具体涉及一种从航空数字正射影像中提取养殖水塘边界的方法和系统。
背景技术
中国是世界水产养殖第一大国,水产养殖产量占世界一半以上。在中国东部和南部的沿海和内陆省份,分布着大片的人工养殖水塘,用于饲养鱼虾蟹等水产品,是农民重要的经济来源。在海岸及滩涂附近的养殖水塘主要是海水养殖水塘,在内陆的养殖水塘是淡水养殖水塘。这些养殖水塘呈现一定的空间聚集特征,具有明显的空间关联性,在空间分布上呈团聚状态。
在航空测绘中,由于养殖水塘被水覆盖,不能获得池塘对应的地形高程,所以在制作数字高程模型(Digital Elevation Model,DEM)时,必须对养殖水塘计算其二维边界线,绘制断裂线。此外,在大比例尺数字线划图(Digital Line Graphic,DLG)的生产中,也需要对水塘绘制水涯线或岸边线。当使用光学摄影测量相机获得测区的航空数字正射影像(Digital Orthophoto Map,DOM)后,需要从中提取养殖水塘的二维边界线,用于后续DEM和DLG的生产。
从航空DOM中提取养殖水塘边界与传统的从卫星遥感影像提取水体边界存在明显不同。常见的卫星光学多光谱/高光谱遥感影像一般包含可见光波段(红、绿、蓝波段)和近红外波段,可以计算归一化水体指数,筛选归一化水体指数高于一定阈值的像素作为水体像素。此外,星载合成孔径雷达影像也可以用于水体提取,如申请号为202010668117.2的中国专利文献,公开了一种近岸水产养殖塘提取方法,其通过计算双极化水体指数SDWI来提取水体层,然后基于水体层来提取水产养殖塘。但是目前的航空DOM主要由光学相机获得,一般只有红、绿、蓝三个波段,没有近红外波段,且未经过严格的辐射定标和辐射校正,不能计算归一化水体指数。因而,卫星遥感的方法不能直接用于航空DOM的养殖水塘边界提取。
在遥感领域,地物分类和目标检测一般常用基于像素的方法和面向对象的方法。基于像素的方法一般不够稳定,容易在分类中产生椒盐噪点。面向对象的方法已经逐渐成为主流。面向对象的方法将影像分为多个不重叠的对象,认为每个对象内部是均质的,对每个对象进行分类或目标检测。由于在对象水平上可以计算出对象的光谱、纹理和几何特征,因此在分类上可用的特征较多,分类效果更优更稳定。通过设定影像分割和分类规则,可以判断哪些对象为养殖水塘,并给出边界。但是,面向对象的方法涉及到的参数和规则众多,十分复杂。例如,尺度参数、形状因子、紧致度因子、波段光谱差异指数、形状指数等参数含义抽象,其设置均需要反复调整。增加一条规则虽然可能提高用户精度,但可能降低生产者精度。
发明内容
发明目的:本发明提供一种从航空正射影像中提取养殖水塘边界的方法,以提高作业效率和自动化程度。
技术方案:本发明一方面公开了一种从航空正射影像中提取养殖水塘边界的方法,包括:
S1、对包含养殖水塘的航空DOM影像进行栅格化,每个栅格中心点所在的像素点为候选检测点;如果所述候选检测点对应的像素是有效像素,则将该像素加入候选检测点集合Sc-dtc中;
S2、从候选检测点集合Sc-dtc中筛选检测点,构成集合Sdtc,具体包括:
S22、如果DNmin≤DNk≤DNmax,则将第k个候选检测点作为检测点;所有检测点构成检测点集合Sdtc;DNmin和DNmax为水塘像素各波段灰度值之和的最小值和最大值;
S3、根据检测点集合Sdtc提取航空DOM中的水塘像素,具体包括S31-S35:
S31、将航空DOM中所有像素点的状态设置为未使用;遍历Sdtc中的每个检测点,对于Sdtc中的第w个检测点pw,进行如下步骤:
S32、建立种子像素集合Sseed,w和水塘像素集合Spond,w,并均初始化为空;将pw加入Sseed,w和Spond,w,将pw标记为已使用,建立扩张像素集合Sexpand并初始化为空;
S33、计算当前水塘像素集合Spond,w中像素点各波段灰度值下限dnb,low,w和上限dnb,high,w:
如果Spond,w内像素数目Npond,w为1,则第b波段灰度值下限dnb,low,w为影像数据类型可表示的最小值Vmin,第b波段灰度值上限dnb,high,w为影像数据类型可表示的最大值Vmax;
其中Ccoef为灰度值偏离均值的最大标准差倍数,且Ccoef>0;
如果dnb,low,w小于Vmin,则令dnb,low,w=Vmin;如果dnb,high,w大于Vmax,则令dnb,high,w=Vmax;
S34、对Sseed,w内的像素进行八邻域水塘扩张:
遍历Sseed,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列,其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第一扩张条件,将pm,n加入扩张像素集合Sexpand。
所述第一扩张条件为:对任意波段b,b∈{1,2,…,B},pm,n在第b波段的值dnm,n,b均满足dnb,low,w≤dnm,n,b≤dnb,high,w,B为航空DOM影像波段数目;
S35、遍历Sseed,w中的像素点结束后,如果Sexpand内的像素点数大于0,则将Sexpand内的点全部加入Spond,w,将Sseed,w更新为Sexpand,并清空Sexpand,重新执行步骤S33和S34,以更新后的Sseed,w进行下一次水塘扩张;
如果Sexpand内的点数为0,则对Sdtc中的第w个检测点pw的扩张结束,跳转至步骤S32进行下一个检测点的水塘扩张,直到Sdtc中所有检测点均扩张结束;
S4、提取水塘像素的边界,具体包括:
对每个水塘像素集合Spond,w生成其对应的二值图像Ibin,w,Ibin,w的大小与航空DOM影像相同,如果Spond,w包含第r行第c列的像素点,则将二值图像Ibin,w第r行第c列的灰度值置为1,否则置为0;对二值图像Ibin,w先进行形态学闭运算,再进行开运算,之后进行边界追踪,将位于边界处的像素作为边界像素集合Sbound,w;
S5、提取水塘阴影,具体包括:
S51、对每个水塘像素集合Spond,w,计算阴影各波段灰度值上限,第b波段阴影灰度值上限dnb,shad,w:
Cshad为阴影第b波段灰度值低于无阴影部分均值的最小标准差倍数,为非负数;
S52、对每个水塘像素集合Spond,w建立阴影种子像素集合Sseed,shad,w并初始化为空,将Sbound,w内的像素全部加入Sseed,shad,w;建立阴影像素集合Sshadow并初始化为空;
S53、对Sseed,shad,w内的像素逐个进行八邻域阴影扩张:
遍历Sseed,shad,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列;其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第二扩张条件,将pm,n加入阴影像素集合Sshadow;所述第二扩张条件为:pm,n的所有波段中,灰度值dnm,n,b满足dnm,n,b≤dnb,shad,w的波段数目Nlowband大于等于预设的波段数目阈值Nth;
S54、遍历Sseed,shad,w中的像素点结束后,如果Sshadow内的点数大于0,则将Sshadow内的点全部加入Spond,w,将Sseed,shad,w更新为Sshadow,并清空Sshadow,重新执行步骤S53,以更新后的Sseed,shad,w进行下一次阴影扩张;
如果Sshadow内的点数为0,则水塘阴影扩张结束;
S55、计算Spond,w对应的面积Apond,w:Apond,w=Npond,w|dxdy|;其中Npond,w为Spond,w中像素点的数量,dx和dy分别为每个像素在投影坐标系下横坐标和纵坐标方向代表的长度;
如果Apond,w满足Amin≤Apond,w≤Amax,则称Spond,w对应有效的水塘,将Spond,w内的全部像素加入Sallpond,其中Amin和Amax分别为水塘面积的下限和上限;
S6、对整幅影像计算水塘边界并简化,具体包括:
S61、对Sallpond内的像素生成对应的二值图像Iallbin,二值图像Iallbin的大小和DOM影像相同,如果Sallpond包含第r行第c列的元素,则将二值图像Iallbin第r行第c列的值置为1,否则置为0;
S62、对二值图像Iallbin进行边界追踪,获得水塘边界;
S63、对水塘边界进行简化,得到提取出的养殖水塘边界。
另一方面,本发明公开了实现上述提取养殖水塘边界方法的系统,包括:
候选检测点集合建立模块1,用于根据步骤S1构建候选检测点集合Sc-dtc;所述步骤S1为:
对包含养殖水塘的航空DOM影像进行栅格化,每个栅格中心点所在的像素点为候选检测点;如果所述候选检测点对应的像素是有效像素,则将该像素加入候选检测点集合Sc-dtc中;
检测点筛选模块2,用于从候选检测点集合Sc-dtc中筛选检测点,建立检测点集合Sdtc;
水塘像素提取模块3,用于根据检测点集合Sdtc提取航空DOM影像中的水塘像素;
水塘像素边界提取模块4,用于提取每个检测点对应水塘像素的边界;
水塘阴影提取模块5,用于根据每个检测点的水塘像素边界提取水塘阴影,并根据水塘像素和阴影像素构建影像中水塘全部像素集合;
影像水塘边界提取模块6,用于对整幅影像计算水塘边界。
有益效果:本发明公开的从航空DOM提取养殖水塘边界的方法中,参数仅包括水塘最小面积Amin、最大面积Amax、波段灰度值之和的最小值DNmin、波段灰度值之和的最大值DNmax、灰度标准差阈值σthre、水塘像素灰度值偏离均值的最大标准差倍数Ccoef、阴影灰度值低于无阴影部分均值的最小标准差倍数Cshad;参数直观、数量少且容易设置,实现简单,稳定性好,较为稳健。该方法可以有效避免水塘内的增氧机、水草、浅水区、塘梗、塘梗阴影等的影响,能够较为精确地提取出养殖水塘边界。
附图说明
图1为本发明公开的养殖水塘边界提取方法的流程图;
图2为二值图像边界追踪示意图;
图3为典型水塘在某波段灰度值的剖面图;
图4为检测点设置示意图;
图5为养殖水塘边界提取系统的组成示意图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
本发明公开了一种从航空正射影像中提取养殖水塘边界的方法,如图1所示,包括:
其中ADOM为所述航空DOM覆盖的面积;ε为面积比例因子,0<ε<0.5。
本步骤对航空DOM进行粗略估计。对养殖水塘面积占比较小的影像,如果直接采用步骤S1中的栅格化方式获取候选检测点,则候选检测点大部分位于非水塘处,导致提取无效或计算效率偏低。在这种情况下,由人工设置检测点,基本可以确保检测点位于水塘处。本实施例中,令面积比例因子ε的取值为0.2。
S1、对包含养殖水塘的航空DOM进行栅格化,每个栅格中心点所在的像素点为候选检测点;
在投影坐标系下,设航空DOM的横坐标范围为[xmin,xmax],纵坐标范围为[ymin,ymax];设每个栅格为边长是dcell的正方形,则横坐标方向的栅格数Ncol为:纵坐标方向的栅格数Nrow为: 为向上取整运算符;第i行第j列的栅格中心点cellij(xdtc,ydtc)坐标的计算方法是:
其中0≤i<Nrow,0≤j<Ncol;dcell可以取单个水塘宽度的最小值,如40m、50m等;
cellij(xdtc,ydtc)在影像中的像素行列号坐标(nrow,ncol)的计算方法为:
其中,dx为每个像素在投影坐标系下横坐标方向代表的长度;dy为每个像素在投影坐标系下纵坐标方向代表的长度,为向下取整运算符。如果(nrow,ncol)对应的像素不位于影像的无数据(nodata)区域,是有效像素,则将该像素加入候选检测点集合Sc-dtc中。
S2、从候选检测点集合Sc-dtc中筛选检测点,构成集合Sdtc;
本实施例中根据水塘像素各波段灰度值之和来筛选检测点,具体为:
如果DNmin≤DNk≤DNmax,则将第k个候选检测点作为检测点;所有检测点构成检测点集合Sdtc;
DNmin和DNmax为水塘像素各波段灰度值之和的最小值和最大值;可以通过在影像中选择多个水塘像素进行统计获得。通过限制各波段灰度值之和的范围来选择水塘检测点,是为了将水塘和塘梗、道路、建筑物等区分开,避免检测点落在塘梗、道路、建筑物等地物上;限制各波段灰度值之和比限制单个波段的灰度值更稳健。通常而言,水塘像素各波段灰度值之和要低于塘梗、道路、建筑物等地物。
S3、根据检测点集合Sdtc提取航空DOM影像中的水塘像素,具体为:
S31、将航空DOM中所有像素点的状态设置为未使用;遍历Sdtc中的每个检测点,对于Sdtc中的第w个检测点pw,执行如下步骤:
S32、建立种子像素集合Sseed,w和水塘像素集合Spond,w,并均初始化为空;将pw加入Sseed,w和Spond,w,将pw标记为已使用,建立扩张像素集合Sexpand并初始化为空;
S33、计算当前水塘像素集合Spond,w中像素点各波段灰度值下限dnb,low,w和上限dnb,high,w:
如果Spond,w内像素数目Npond,w为1,则第b波段灰度值下限dnb,low,w为影像数据类型可表示的最小值Vmin,第b波段灰度值上限dnb,high,w为影像数据类型可表示的最大值Vmax;
例如,对于采用一个字节长度的无符号整型作为存储单像素单波段的灰度值的基本单位的影像,其Vmin为0,Vmax为255;
其中dnj,b为Spond,w中第j个像素点在第b个波段的值,标准差σb,w的计算为:
其中Ccoef为灰度值偏离均值的最大标准差倍数,且Ccoef>0;如果dnb,low,w小于Vmin,则设dnb,low,w=Vmin;如果dnb,high,w大于Vmax,则设dnb,high,w=Vmax;
灰度标准差阈值σthre的取值可以经验性地获取,方法是在DOM上选择多个水塘,对各水塘逐个计算不同波段灰度值的标准差,寻找各波段灰度值标准差的最大值,使σthre略大于该最大值,将σthre应用到各个波段。对于采用一个字节长度的无符号整型作为存储单像素单波段的灰度值的基本单位的影像,σthre取4-6即可。限制σthre可以避免检测点位于水塘边缘或水塘外时造成无限制的扩张。
对于Ccoef,如果水塘灰度值分布较为均匀,Ccoef可以取[2.5,3.5]范围内的值;例如3.0,就足够(在第b波段的灰度值符合正态分布的情况下,99.73%的灰度值分布在3倍标准差的范围内);如果水塘同时存在浅水区和深水区,灰度值不一致,此时Ccoef可以取更大的值,如[6.0,8.0]范围内的值。
S34、对Sseed,w内的像素进行八邻域水塘扩张:
遍历Sseed,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列,其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第一扩张条件,将pm,n加入扩张像素集合Sexpand。
所述第一扩张条件为:对任意波段b,b∈{1,2,…,B},pm,n在第b波段的值dnm,n,b均满足dnb,low,w≤dnm,n,b≤dnb,high,w;
S35、遍历Sseed,w中的像素点结束后,如果Sexpand内的像素点数大于0,则将Sexpand内的点全部加入Spond,w,将Sseed,w更新为Sexpand,并清空Sexpand,重新执行步骤S33和S34,以更新后的Sseed,w进行下一次水塘扩张;
如果Sexpand内的点数为0,则对Sdtc中的第w个检测点pw的扩张结束,跳转至步骤S32进行下一个检测点的水塘扩张,直到Sdtc中所有检测点均扩张结束;
水塘扩张结束后,Sdtc中的每个检测点对应一个水塘像素集合Spond,w,这些水塘像素基本是影像中水塘无阴影部分的像素。
S4、提取水塘像素的边界,具体包括:
对每个水塘像素集合Spond,w生成其对应的二值图像Ibin,w,Ibin,w的大小与航空DOM影像相同,如果Spond,w包含第r行第c列的像素点,则将二值图像Ibin,w第r行第c列的灰度值置为1,否则置为0;
对二值图像Ibin,w先进行形态学闭运算、再进行开运算,之后进行边界追踪,获得位于边界处的像素,构成边界像素集合Sbound,w;如图2所示,图2-(a)中白色部分灰度值为0,即为非水塘像素;斜线填充部分灰度值为1,即为水塘像素;对此二值图像进行边界追踪,获取到边界的像素;图2-(b)中,深灰色部分即为位于边界处的水塘像素。
边界追踪可以采用栅格矢量化的方法,记录构成边界的每个像素;
S5、提取水塘阴影,具体包括:
S51、对每个水塘像素集合Spond,w,计算阴影各波段灰度值上限,第b波段阴影灰度值上限dnb,shad,w:
为步骤S33给出的Spond,w中像素点第b个波段灰度值的平均值,σb,w为步骤S33给出的Spond,w中像素点第b个波段灰度值的标准差;Cshad为阴影灰度值低于的最小标准差倍数,为非负数;b∈{1,2,…,B}。
考虑到从无阴影部分过渡到阴影部分时,灰度值不是突然剧烈降低,而是在几个像素的宽度内逐步降低,如图3所示,所以Cshad不能取太大的值,以避免后续不能扩张到阴影部分,通常Cshad取大于0,小于1.0的值。
S52、对每个水塘像素集合Spond,w建立阴影种子像素集合Sseed,shad,w并初始化为空,将Sbound,w内的像素全部加入Sseed,shad,w;建立阴影像素集合Sshadow并初始化为空;
S53、对Sseed,shad,w内的像素逐个进行八邻域阴影扩张:
遍历Sseed,shad,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列;其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第二扩张条件,将pm,n加入阴影像素集合Sshadow。所述第二扩张条件为:pm,n的所有波段中,灰度值dnm,n,b满足dnm,n,b≤dnb,shad,w的波段数目Nlowband大于等于预设的波段数目阈值Nth,本实施例中,Nth=B/2。
在第二扩张条件中不要求pm,n所有波段的灰度值都满足dnm,n,b≤dnb,shad,w,是为了避免一些阴影部分像素在某波段灰度值降低的不够多,导致不能被扩张到的情况。
S54、遍历Sseed,shad,w中的像素点结束后,如果Sshadow内的点数大于0,则将Sshadow内的点全部加入Spond,w,将Sseed,shad,w更新为Sshadow,并清空Sshadow,重新执行步骤S53,以更新后的Sseed,shad,w进行下一次阴影扩张;
如果Sshadow内的点数为0,则水塘阴影扩张结束。
S55、计算Spond,w对应的面积Apond,w:Apond,w=Npond,w|dxdy|;其中Npond,w为Spond,w中像素点的数量;
如果Apond,w满足Amin≤Apond,w≤Amax,则称Spond,w对应有效的水塘,将Spond,w内的全部像素加入Sallpond;Sallpond中的像素为航空DOM影像中水塘的全部像素,包括无阴影部分和塘梗及其它地物在水塘造成的阴影部分。
Amin和Amax的取值可以经验性地获取,在DOM上测量多个水塘的面积,寻找最小面积amin和最大面积amax。如果一个水塘被阴影分为多个不相连的无阴影部分,则需要将面积最小的无阴影部分的面积作为amin。如图4所示,某水塘被阴影S分为A1和A2两个无阴影部分,其中A2的面积较小,则取A2的面积作为最小面积amin。设置Amin=amin-α,Amax=amax+β,α和β均为正数,且要确保Amin>0。
S6、对整幅影像计算水塘边界并简化,具体包括:
S61、对Sallpond内的像素生成对应的二值图像Iallbin,二值图像Iallbin的大小和DOM相同,如果Sallpond包含第r行第c列的元素,则将二值图像Iallbin第r行第c列的值置为1,否则置为0;
S62、对二值图像Iallbin进行边界追踪,获得水塘边界;
边界追踪可采用栅格矢量化的方法;
S63、对水塘边界进行简化;
边界简化方法可以采用Douglas-Peucker法、Li-Openshaw算法等。
根据简化后的边界输出水塘边界的矢量文件。
经过上述步骤后,提取出了航空DOM影像中的养殖水塘。但对于某些航空正射影像,可能存在部分水塘边界没有被提取出,或提取不完整的情况。针对这样的情况,可以手工设置检测点,再次采用上述步骤二次提取边界,包括如下步骤:
S7、再次设置检测点,具体包括:
S71、将将水塘边界和DOM叠加显示,对水塘边界进行检查,寻找以下情况的水塘:
(1)未自动提取到边界;
(2)因为水面阴影等原因,水塘边界提取不完整;
S72、在S71中找到的水塘中设置检测点,并记录所设置检测点的横坐标和纵坐标;
如果单个水塘只有一个无阴影部分,只需要在水塘中心选取一个检测点;如果单个水塘被阴影分成多个不相连的无阴影部分,则水塘的每个无阴影部分都需要选取一个检测点,如图4所示,在A1区域设置检测点d1,在A2区域设置检测点d2。检测点要尽量位于无阴影部分的中心。
S8、清空检测点集合Sdtc,将步骤7设置的检测点加入Sdtc,采用步骤S3-S6再次提取水塘边界,具体包括:
S81、清空Sdtc;
S82、将步骤S7生成的检测点文件中的所有检测点加入Sdtc;
S83、按照步骤S3-S6进行自动水塘边界提取;
在步骤S83中,可以对Ccoef、Cshad、Amin、Amax等参数进行调整,以获得更好的效果。
S9、将两次边界提取得到的水塘边界进行合并,得到待提取影像中的养殖水塘边界。
之后还可以由人工对提取到的边界进行编辑,包括:
(1)删除非水塘边界;
(2)删除重复的水塘边界;
(3)手工勾绘未自动提取出的水塘边界;
(4)手工调整自动提取的水塘边界;手动调整包括水塘边界点的移动、删除等。
本实施例还公开了实现上述从航空正射影像中提取养殖水塘边界方法的系统,如图5所示,包括:
候选检测点集合建立模块1,用于构建候选检测点集合Sc-dtc,具体步骤为:
S1、对包含养殖水塘的航空DOM影像进行栅格化,每个栅格中心点所在的像素点为候选检测点;如果所述候选检测点对应的像素是有效像素,则将该像素加入候选检测点集合Sc-dtc中;
检测点筛选模块2,用于从候选检测点集合Sc-dtc中筛选检测点,建立检测点集合Sdtc;
水塘像素提取模块3,用于按照步骤3.1-3.5根据检测点集合Sdtc提取航空DOM影像中的水塘像素;
水塘像素边界提取模块4,用于按照步骤4提取每个检测点对应水塘像素的边界;
水塘阴影提取模块5,用于按照步骤5根据每个检测点的水塘像素边界提取水塘阴影,并根据水塘像素和阴影像素构建影像中水塘全部像素集合;
影像水塘边界提取模块6,用于按照步骤6对整幅影像计算水塘边界;
检测点设置模块7,用于按照步骤7获取指定的检测点坐标;
水塘边界二次提取模块8,用于获取根据指定的检测点坐标再次提取到的水塘边界;
水塘边界合并模块9,用于将两次边界提取得到的水塘边界进行合并,得到待提取影像中的养殖水塘边界。
Claims (9)
1.一种从航空正射影像中提取养殖水塘边界的方法,其特征在于,包括:
S1、对包含养殖水塘的航空DOM影像进行栅格化,每个栅格中心点所在的像素点为候选检测点;如果所述候选检测点对应的像素是有效像素,则将该像素加入候选检测点集合Sc-dtc中;
S2、从候选检测点集合Sc-dtc中筛选检测点,具体包括:
S22、如果DNmin≤DNk≤DNmax,则将第k个候选检测点作为检测点;所有检测点构成检测点集合Sdtc;DNmin和DNmax为水塘像素各波段灰度值之和的最小值和最大值;
S3、根据检测点集合Sdtc提取航空DOM影像中的水塘像素,具体包括S31-S35:
S31、将航空DOM中所有像素点的状态设置为未使用;遍历Sdtc中的每个检测点,对于Sdtc中的第w个检测点pw,进行如下步骤:
S32、建立种子像素集合Sseed,w和水塘像素集合Spond,w,并均初始化为空;将pw加入Sseed,w和Spond,w,将pw标记为已使用,建立扩张像素集合Sexpand并初始化为空;
S33、计算当前水塘像素集合Spond,w中像素点各波段灰度值下限dnb,low,w和上限dnb,high,w:
如果Spond,w内像素数目Npond,w为1,则第b波段灰度值下限dnb,low,w为影像数据类型可表示的最小值Vmin,第b波段灰度值上限dnb,high,w为影像数据类型可表示的最大值Vmax;
其中Ccoef为灰度值偏离均值的最大标准差倍数,且Ccoef>0;
如果dnb,low,w小于Vmin,则令dnb,low,w=Vmin;如果dnb,high,w大于Vmax,则令dnb,high,w=Vmax;
S34、对Sseed,w内的像素进行八邻域水塘扩张:
遍历Sseed,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列,其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第一扩张条件,将pm,n加入扩张像素集合Sexpand;
所述第一扩张条件为:对任意波段b,b∈{1,2,…,B},pm,n在第b波段的值dnm,n,b均满足dnb,low,w≤dnm,n,b≤dnb,high,w,B为航空DOM影像波段数目;
S35、遍历Sseed,w中的像素点结束后,如果Sexpand内的像素点数大于0,则将Sexpand内的点全部加入Spond,w,将Sseed,w更新为Sexpand,并清空Sexpand,重新执行步骤S33和S34,以更新后的Sseed,w进行下一次水塘扩张;
如果Sexpand内的点数为0,则对Sdtc中的第w个检测点pw的扩张结束,跳转至步骤S32进行下一个检测点的水塘扩张,直到Sdtc中所有检测点均扩张结束;
S4、提取水塘像素的边界,具体包括:
对每个水塘像素集合Spond,w生成其对应的二值图像Ibin,w,Ibin,w的大小与航空DOM影像相同,如果Spond,w包含第r行第c列的像素点,则将二值图像Ibin,w第r行第c列的灰度值置为1,否则置为0;对二值图像Ibin,w先进行形态学闭运算,再进行开运算;之后对二值图像Ibin,w进行边界追踪,获得位于边界处的像素,构成边界像素集合Sbound,w;
S5、提取水塘阴影,具体包括:
S51、对每个水塘像素集合Spond,w,计算阴影各波段灰度值上限,第b波段阴影灰度值上限dnb,shad,w:
S52、对每个水塘像素集合Spond,w建立阴影种子像素集合Sseed,shad,w并初始化为空,将Sbound,w内的像素全部加入Sseed,shad,w;建立阴影像素集合Sshadow并初始化为空;
S53、对Sseed,shad,w内的像素逐个进行八邻域阴影扩张:
遍历Sseed,shad,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列;其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第二扩张条件,将pm,n加入阴影像素集合Sshadow;所述第二扩张条件为:pm,n的所有波段中,灰度值dnm,n,b满足dnm,n,b≤dnb,shad,w的波段数目Nlowband大于等于预设的波段数目阈值Nth;
S54、遍历Sseed,shad,w中的像素点结束后,如果Sshadow内的点数大于0,则将Sshadow内的点全部加入Spond,w,将Sseed,shad,w更新为Sshadow,并清空Sshadow,重新执行步骤S53,以更新后的Sseed,shad,w进行下一次阴影扩张;
如果Sshadow内的点数为0,则水塘阴影扩张结束;
S55、计算Spond,w对应的面积Apond,w:Apond,w=Npond,w|dxdy|;其中Npond,w为Spond,w中像素点的数量;dx和dy分别为每个像素在投影坐标系下横坐标和纵坐标方向的长度;
如果Apond,w满足Amin≤Apond,w≤Amax,则称Spond,w对应有效的水塘,将Spond,w内的全部像素加入Sallpond,其中Amin和Amax分别为水塘面积的下限和上限;
S6、对整幅影像计算水塘边界并简化,具体包括:
S61、对Sallpond内的像素生成对应的二值图像Iallbin,二值图像Iallbin的大小和DOM影像相同,如果Sallpond包含第r行第c列的元素,则将二值图像Iallbin第r行第c列的值置为1,否则置为0;
S62、对二值图像Iallbin进行边界追踪,获得水塘边界;
S63、对水塘边界进行简化,得到提取出的养殖水塘边界。
3.根据权利要求1所述的提取养殖水塘边界的方法,其特征在于,所述灰度标准差阈值σthre的取值方法为:
在航空DOM上选择多个水塘,对各水塘逐个计算不同波段灰度值的标准差,寻找各波段灰度值标准差的最大值,令σthre大于所述最大值。
4.根据权利要求1所述的提取养殖水塘边界的方法,其特征在于,所述灰度值偏离均值的最大标准差倍数Ccoef的取值范围为:
如果水塘灰度值较为均匀,Ccoef取值范围为[2.5,3.5];
如果水塘同时存在浅水区和深水区,Ccoef取值范围为[6.0,8.0]。
5.根据权利要求1所述的提取养殖水塘边界的方法,其特征在于,所述步骤S6中采用Douglas-Peucker法或Li-Openshaw算法进行边界简化。
6.根据权利要求1所述的提取养殖水塘边界的方法,其特征在于,步骤S6后还包括:
S7、再次设置检测点,具体包括:
S71、将水塘边界和DOM叠加显示,对水塘边界进行检查,寻找以下情况的水塘:
(1)未自动提取到边界;
(2)水塘边界提取不完整;
S72、在S71中找到的水塘中设置检测点,并记录所设置检测点的横坐标和纵坐标;
S8、清空检测点集合Sdtc,将步骤7设置的检测点加入Sdtc,采用步骤S3-S6再次提取水塘边界;
S9、将两次边界提取得到的水塘边界进行合并,得到待提取影像中的养殖水塘边界。
7.根据权利要求6所述的提取养殖水塘边界的方法,其特征在于,还包括:由人工对提取到的边界进行编辑,包括:
(1)删除非水塘边界;
(2)删除重复的水塘边界;
(3)手工勾绘未自动提取出的水塘边界;
(4)手工调整自动提取的水塘边界。
8.一种从航空正射影像中提取养殖水塘边界的系统,其特征在于,包括:
候选检测点集合建立模块(1),用于根据步骤S1构建候选检测点集合Sc-dtc;所述步骤S1为:
对包含养殖水塘的航空DOM影像进行栅格化,每个栅格中心点所在的像素点为候选检测点;如果所述候选检测点对应的像素是有效像素,则将该像素加入候选检测点集合Sc-dtc中;
检测点筛选模块(2),用于从候选检测点集合Sc-dtc中筛选检测点,建立检测点集合Sdtc;
水塘像素提取模块(3),用于根据检测点集合Sdtc提取航空DOM影像中的水塘像素;
水塘像素边界提取模块(4),用于提取每个检测点对应水塘像素的边界;
水塘阴影提取模块(5),用于根据每个检测点的水塘像素边界提取水塘阴影,并根据水塘像素和阴影像素构建影像中水塘全部像素集合;
影像水塘边界提取模块(6),用于对整幅影像计算水塘边界;
所述水塘像素提取模块(3)根据检测点集合Sdtc提取航空DOM中的水塘像素的步骤为:
S31、将航空DOM中所有像素点的状态设置为未使用;遍历Sdtc中的每个检测点,对于Sdtc中的第w个检测点pw,进行如下步骤:
S32、建立种子像素集合建立种子像素集合Sseed,w和水塘像素集合Spond,w,并均初始化为空;将pw加入Sseed,w和Spond,w,将pw标记为已使用,建立扩张像素集合Sexpand并初始化为空;
S33、计算当前水塘像素集合Spond,w中像素点各波段灰度值下限dnb,low,w和上限dnb,high,w:
如果Spond,w内像素数目Npond,w为1,则第b波段灰度值下限dnb,low,w为影像数据类型可表示的最小值Vmin,第b波段灰度值上限dnb,high,w为影像数据类型可表示的最大值Vmax;
其中Ccoef为灰度值偏离均值的最大标准差倍数,且Ccoef>0;
如果dnb,low,w小于Vmin,则令dnb,low,w=Vmin;如果dnb,high,w大于Vmax,则令dnb,high,w=Vmax;
S34、对Sseed,w内的像素进行八邻域水塘扩张:
遍历Sseed,w中的像素点,设当前待扩张像素点为pr,c,位于航空DOM影像的第r行第c列,其八邻域像素为pm,n,|m-r|≤1,|n-c|≤1;如果pm,n状态为已使用,则跳过pm,n,处理pr,c的下一个八邻域像素;否则,将pm,n状态设置为已使用,如果pm,n满足第一扩张条件,将pm,n加入扩张像素集合Sexpand;
所述第一扩张条件为:对任意波段b,b∈{1,2,…,B},pm,n在第b波段的值dnm,n,b均满足dnb,low,w≤dnm,n,b≤dnb,high,w,B为航空DOM影像波段总数;
S35、遍历Sseed,w中的像素点结束后,如果Sexpand内的像素点数大于0,则将Sexpand内的点全部加入Spond,w,将Sseed,w更新为Sexpand,并清空Sexpand,重新执行步骤S33和S34,以更新后的Sseed,w进行下一次水塘扩张;
如果Sexpand内的点数为0,则对Sdtc中的第w个检测点pw的扩张结束,跳转至步骤S32进行下一个检测点的水塘扩张,直到Sdtc中所有检测点均扩张结束。
9.根据权利要求8所述的从航空正射影像中提取养殖水塘边界的系统,其特征在于,还包括:
检测点设置模块(7),用于获取指定的检测点坐标;
水塘边界二次提取模块(8),用于获取根据指定的检测点坐标再次提取到的水塘边界;
水塘边界合并模块(9),用于将两次边界提取得到的水塘边界进行合并,得到待提取影像中的养殖水塘边界。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347497.4A CN113129320B (zh) | 2021-03-31 | 2021-03-31 | 一种从航空正射影像中提取养殖水塘边界的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347497.4A CN113129320B (zh) | 2021-03-31 | 2021-03-31 | 一种从航空正射影像中提取养殖水塘边界的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113129320A CN113129320A (zh) | 2021-07-16 |
CN113129320B true CN113129320B (zh) | 2022-05-24 |
Family
ID=76774358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110347497.4A Active CN113129320B (zh) | 2021-03-31 | 2021-03-31 | 一种从航空正射影像中提取养殖水塘边界的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113129320B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111376B (zh) * | 2019-04-30 | 2022-10-04 | 安徽理工大学 | 一种采煤沉陷水域面积计算方法 |
CN110207676A (zh) * | 2019-06-12 | 2019-09-06 | 中国科学院测量与地球物理研究所 | 一种田沟塘参数的获取方法及装置 |
CN111209828B (zh) * | 2019-12-31 | 2020-09-25 | 飞燕航空遥感技术有限公司 | 从机载激光雷达点云中提取建筑物屋顶点的方法和系统 |
-
2021
- 2021-03-31 CN CN202110347497.4A patent/CN113129320B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113129320A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Son et al. | Mangrove mapping and change detection in Ca Mau Peninsula, Vietnam, using Landsat data and object-based image analysis | |
CN108573276A (zh) | 一种基于高分辨率遥感影像的变化检测方法 | |
CN106023133B (zh) | 一种基于多特征联合处理的高分辨率遥感影像水体提取方法 | |
CN108596103A (zh) | 基于最佳光谱指数选择的高分辨率卫星遥感影像建筑物提取方法 | |
CN105631903B (zh) | 基于rgbw特征空间图割算法的遥感图像水体提取方法、装置 | |
CN105447274B (zh) | 一种利用面向对象分类技术对中等分辨率遥感图像进行滨海湿地制图的方法 | |
CN110751075A (zh) | 一种基于实例分割的遥感影像养殖塘检测方法 | |
CN106971156A (zh) | 一种基于面向对象分类的稀土开采区遥感信息提取方法 | |
CN110309781A (zh) | 基于多尺度光谱纹理自适应融合的房屋损毁遥感识别方法 | |
CN109359533B (zh) | 一种基于多波段遥感影像的海岸线提取方法 | |
CN104102928B (zh) | 一种基于纹理基元的遥感图像分类方法 | |
CN105809194A (zh) | 一种sar影像翻译为光学影像的方法 | |
CN115861409B (zh) | 大豆叶面积测算方法、系统、计算机设备及存储介质 | |
Choi et al. | UAV-based land cover mapping technique for monitoring coastal sand dunes | |
CN113129320B (zh) | 一种从航空正射影像中提取养殖水塘边界的方法和系统 | |
Xu et al. | Classification of coral reef benthos around Ganquan Island using WorldView-2 satellite imagery | |
Xie et al. | Object-oriented random forest classification for Enteromorpha prolifera detection with SAR images | |
Xu et al. | Spatiotemporal distribution of cage and raft aquaculture in China's offshore waters using object-oriented random forest classifier | |
CN113420780B (zh) | 一种遥感时空谱特征融合的养殖池提取方法 | |
Frohn et al. | Multi-scale image segmentation and object-oriented processing for land cover classification | |
Hashim et al. | Multi-level image segmentation for urban land-cover classifications | |
Walker et al. | Southeast Florida shallow-water habitat mapping & coral reef community characterization | |
Zhang et al. | Object-oriented Zhangjiangkou mangrove communities classification using quickbird imagery | |
Ciaburri et al. | Automatic extraction of rivers from satellite images using image processing techniques | |
Sharda et al. | Classification of Siachen glacier using object-based image analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |