利用MNDWI指数进行水陆分离并提取水体

摘要

软件:ENVI 5.3,ENVI5.3下载链接:http://www.ixxin.cn/2016/11/20/envi5-3-sp1download/
区域:青岛胶州湾
利用MNDWI指数提取水体

NDWI、MNDWI对比

NDWI
NDWI
MNDWI
MNDWI
从图像上面看。在胶州湾北部边缘以及渔村,由于悬浮物太多,导致NDWI图像亮度与周围陆地相近,会导致识别失败,而MNDWI图像整个区域呈现亮色,与陆地有明显区别。
故采用MNDWI指数进行识别。

步骤

1、图像预处理(不再赘述)
2、计算MNDWI指数。
公式:(R绿-R中)/(R绿+R中)
ENVI中,Band Math 输入

 
 
  1. (float(b2)-float(b5))/(float(b2)+float(b5))

3、判断是否有异常值。

 
 
  1. -1<=MNDWI<=1

如若有异常值,用以下公式消除。

 
 
  1. (b1 lt -1)*0+(b1 gt 1)*0+(b1 ge -1 and b1 le 1)*b1

mndwi
4、利用Regions of Interest_Band Threshold 工具水陆分离
yuzhi
设定阈值,即可生成ROI,本次使用的阈值为0.2734。
5、识别效果
shibie
6、利用Subset Data from ROIS工具提取水体
胶州湾

总结

1、MNDWI识别效果相对于NDWI效果明显好,尤其是悬浮物较多的水体。
2、阈值需要自行设定,每个地方略有不同。
3、不建议对整幅图像计算MNDWI指数,异常值太大,无法消除。

转载自:https://www.ixxin.cn/2016/11/29/mndwiwater/
### 使用ENVI通过阈值分割法提取水体遥感影像处理教程 #### 准备工作 为了确保能够顺利进行水体提取,在开始之前需准备好已获取预处理过的遥感数据。通常情况下,建议先对原始影像执行辐射定标、大气校正等一系列必要的预处理操作[^2]。 #### 计算MNDWI/NDWI指数 进入工具栏搜索`Spectral Indices`选项卡,从中挑选出想要使用的水体指数模型(如MNDWI或NDWI)。选择已经完成的大气校正后的图像作为输入源文件来计算这些特定的水体指数。需要注意的是,尽管有时计算得到的结果可能不会严格位于[-1, 1]区间内,但这不妨碍后续的水体提取过程。 ```python # Python伪代码示意如何调用ENVI API实现上述功能 import envi_api as api # 加载大气校正后的图像 image = api.load_image('path_to_calibrated_image') # 执行MNDWI计算 mndwi_result = image.calculate_spectral_index('MNDWI') ``` #### 阈值分割设置 当获得了相应的水体指数图层后,下一步就是确定合适的阈值来进行二值化处理。可以通过直方图分析或是尝试不同的固定数值找到最佳分界线,使得最终分离出来的区域尽可能只包含真正的水域范围。对于某些场景而言,动态调整阈值可能会带来更好的效果[^4]。 ```matlab % MATLAB风格伪代码展示简单的手动设定阈值方式 threshold_value = -0.2; % 假设选定此值为区分水陆界限的标准 binary_water_map = mndwi_result > threshold_value; ``` #### 后处理优化 初步提取完成后,往往还需要进一步清理结果中的噪声点以及合零散的小斑块。借助于形态学滤波器或者其他空间过滤手段可以帮助提高精度和美观度。此外,还可以考虑引入最小制图单元的概念,排除那些面积过小的对象以减少误差。 ```bash # Shell命令行形式说明应用连通域分析移除孤立像元的方法 connected_components_analysis binary_water_map output_cleaned_water_mask min_area=50 ```
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值