【问题标题】:Best way to calculate NDVI using 2 images使用 2 张图像计算 NDVI 的最佳方法
【发布时间】:2021-11-13 02:29:59
【问题描述】:

我有两组卫星图像。一个是一组经典卫星图像,另一个是一组红外卫星图像。我正在尝试使用Normalized difference vegetation index (NDVI) 检测黄色多边形内和红色区域外的植被。

  1. 可见图像

  1. 红外图像

根据图像文档,红外图像的色谱发生了变化:红外波段占据红色波段,红色波段占据绿色波段......

为了计算 NDVI 图像,我正在执行以下操作:

# Images are in BGR color space.    
ndvi = (img_irc[:,:,2].astype(int) - img_visible[:,:,2].astype(int))/(img_irc[:,:,2] + img_visible[:,:,2] + 0.001)

然后,我使用 Otsu 阈值来提取以下掩码:

为了更好地看到效果,我添加了检测对卫星照片影响的半透明蒙版:

结果还不错,但有时会出现错误的检测,比如屋顶上的这里。我怀疑我通过选择红色通道来提取在红色(可见)和近红外区域获得的光谱反射率测量值的方法并不完美。有更好的方法吗?

【问题讨论】:

  • 请原封不动的源数据。没有覆盖。没有假色/matplotlib 截图。
  • 正如@ChristophRackwitz 所说,请提供纯正的图像,不要使用坐标轴、注释或彩色地图。同样,请提供您所掌握的有关每种波长/过滤器的所有信息。谢谢你
  • 好的,谢谢。我刚刚修改了我的帖子。
  • 好吧...阴影是个问题,NIR 通道似乎淡出。简单的 (NIR-red)/(NIR+red) 公式并没有削减它。这些渠道必须发生一些事情。需要一个工作示例...tandfonline.com/doi/full/10.1080/17538947.2018.1495770

标签: python opencv computer-vision satellite-image


【解决方案1】:

NIR 通道显然已经通过光谱转换进行了预处理。您应该靠近源直接从 IR 光谱值中获取值,而不是重新创建图像。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多