【发布时间】:2021-11-13 02:29:59
【问题描述】:
我有两组卫星图像。一个是一组经典卫星图像,另一个是一组红外卫星图像。我正在尝试使用Normalized difference vegetation index (NDVI) 检测黄色多边形内和红色区域外的植被。
- 可见图像
- 红外图像
根据图像文档,红外图像的色谱发生了变化:红外波段占据红色波段,红色波段占据绿色波段......
为了计算 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)
为了更好地看到效果,我添加了检测对卫星照片影响的半透明蒙版:
结果还不错,但有时会出现错误的检测,比如屋顶上的这里。我怀疑我通过选择红色通道来提取在红色(可见)和近红外区域获得的光谱反射率测量值的方法并不完美。有更好的方法吗?
【问题讨论】:
-
请原封不动的源数据。没有覆盖。没有假色/matplotlib 截图。
-
正如@ChristophRackwitz 所说,请提供纯正的图像,不要使用坐标轴、注释或彩色地图。同样,请提供您所掌握的有关每种波长/过滤器的所有信息。谢谢你
-
好的,谢谢。我刚刚修改了我的帖子。
-
好吧...阴影是个问题,NIR 通道似乎淡出。简单的 (NIR-red)/(NIR+red) 公式并没有削减它。这些渠道必须发生一些事情。需要一个工作示例...tandfonline.com/doi/full/10.1080/17538947.2018.1495770
标签: python opencv computer-vision satellite-image