基于倾斜摄影三维模型影像提取水面
基于倾斜摄影三维模型&影像提取水面
当只有倾斜摄影数据,没有水体的矢量面,如何精准的提取出跟倾斜模型贴合的水面效果,下面跟着一起来看看详细步骤。
关键步骤
“二元分类”提取水面
使用之前需要部署环境,可参考:遥感解译作战五件套
二元分类利用遥感图像中各类地物光谱信息和空间信息,通过深度学习算法对遥感图像中的某一类地物要素进行分类,并判定影像的像元是否为兴趣类别,并生成值为 0、1 的二值栅格数据,0 为非兴趣类别,1 为兴趣类别。
(1)、点击工具箱中“机器学习”—“影像分析”—“二元分类”功能按钮,弹出下面的功能窗口。
主要参数:
参数 | 含义 |
源数据 | 选择需要进行分类的影像数据集或者是影像文件。 |
模型文件 | 选择二元分类的水体模型文件(*.sdm)。 |
瓦片重叠 | 在二元分类过程中,由于卷积神经网络的结构特征,会导致切片边缘的数据预测不充分,为使了提高预测质量,需要将切片重叠。此参数以像元为单位,一般为兴趣类别平均大小的 2~3 倍。 |
结果数据 | 结果栅格数据集,设置结果数据集保存的数据源和保存名称。 |
(2)、对上一步结果栅格数据进行“栅格矢量化”,将栅格值为1的提取出来,就是识别到的水体面。
结果对比:
影像 | 提取水体 |
| |
筛选有效水体
提取的结果,需要人工检查,将一些小的水面或者由于影像精度各种原因导致识别错误的数据筛选出来,只保留有效水体。可以直接在地图中选中有效水体后另存为新的数据集。
筛选前 | 筛选后 |
| |
注意:可能提取的水体面存在复合对象,为了保证后面的正确性,需要将对象进行拆分为简单对象。
检查是否为复合对象 | |
拆分对象 | |
拆分后通过数据集属性表,将无效的小对象删除,可以通过对比面积字段进行排序来筛查出小对象。 | |
缓冲区分析
为了水体能够更好的贴合倾斜摄影三维模型数据,可以对筛选出来的水体进行缓冲区,扩大一点范围,建议0.5米以内。
提取水体高度
目前水体为二维面,还没有高度,需要将水体提取到倾斜的高度上。关键步骤:
步骤一:新增一个字段,设置为唯一标识。 | |
步骤二:面转线 | |
步骤三:线转点 | 以上三步得到的结果: |
步骤四:根据倾斜,对上一步得到的点数据提取高度,得到三维点数据集,【三维数据】—【倾斜摄影】—【数据处理】—【提取数据】 | |
步骤五:sql查询,过滤掉不在倾斜范围内的点(高度为0的数据) |
|
步骤六:三维点转三维线 | 得到结果: |
步骤七:三维线转三维面 | 得到的结果: |
结果优化与展示
将结果三维面添加到场景中,和倾斜叠加在一起,可以对水面图层设置三维水面风格查看水体效果。对于水体中部有一些倾斜凸出部分,如果想要压平,得到平静的水面,也可以直接用上面的水体面对倾斜进行镶嵌压平。
注意事项
缓冲区大小需根据实际地形调整,避免过度扩张。
高度提取时需确保倾斜模型覆盖完整水体区域。