根据两幅图片的ndvi计算结果,绘制出植被变化结果图(植被增加区域用浅绿色显示,植被减少区域用红 色显示,植被不变区域用深绿色显示,非植被区域用灰色显示)。python代码
时间: 2024-02-24 08:00:05 浏览: 72
好的,以下是一个基于Python的实现代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 读取两幅图片的ndvi计算结果
ndvi1 = np.loadtxt('ndvi1.txt')
ndvi2 = np.loadtxt('ndvi2.txt')
# 计算ndvi差异
diff = ndvi2 - ndvi1
# 设置阈值,判断植被变化情况
threshold = 0.1
add = np.where(diff > threshold, 1, 0)
sub = np.where(diff < -threshold, 1, 0)
unchanged = np.where(np.abs(diff) <= threshold, 1, 0)
# 生成RGB图像
img = np.zeros((ndvi1.shape[0], ndvi1.shape[1], 3))
img[:,:,0] = add * 255 # 红色
img[:,:,1] = unchanged * 255 # 绿色
img[:,:,2] = sub * 255 # 蓝色
# 对非植被区域着灰色
non_vegetation = np.where(ndvi1 == 0, 1, 0)
img[non_vegetation == 1] = [128, 128, 128]
# 显示图像
plt.imshow(img.astype(np.uint8))
plt.axis('off')
plt.show()
```
其中,`ndvi1.txt`和`ndvi2.txt`分别是两幅图片的ndvi计算结果,可以根据具体情况进行修改。在代码中,我们首先使用numpy库读取这两个结果,然后计算它们的差异,并根据阈值判断植被变化情况。接下来,我们将不同的变化情况映射到RGB颜色空间中,生成一张RGB图像。最后,我们对非植被区域着灰色,并将图像显示出来。
阅读全文