微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

matplotlib.imshow() 复制图像

如何解决matplotlib.imshow() 复制图像

我正在使用 python3、earthpy、Rasterio、numpy 和 matplotlib 处理 Sentinel-2 卫星图像和分析。您可以参考完整代码here。我正在尝试分别使用红色、绿色和蓝色带创建 RGB 复合图像。

如果你参考代码,你可以看到下面这行代码变成了黑白图像,而不是彩色图像-

rgb = ep.plot_rgb( arr = stacked_s2_sentinel_img,rgb = (1,2,3),figsize =(20,10) #,title = titles )
plt.show()

为了缓解这个问题,我采用了使用 numpy 的 'nanpercentile()' 函数来计算对比度拉伸边界的方法,然后使用这些边界和 numpy 的 'interp()' 函数在 0 和1 使用这些边界。 支持代码为:

blue_stretch.shape,green_stretch.shape,red_stretch.shape
# ((1830,1830),(1830,1830))
rgb_img = np.stack([red_stretch,green_stretch,blue_stretch])
rgb_img.shape
# (3,1830,1830)
rgb_img = rgb_img.reshape(1830,3)
rgb_img.shape
# (1830,3)
plt.figure(figsize = (10,8))
plt.imshow(rgb_img,interpolation='nearest')
plt.show()

但这显示了在 3 x 3 网格中重复 9 次的相同图像。怎么了?此外,图像看起来完全错误

生成的图像如下所示-

resulting image

怎么了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。