如何解决如何从堆叠的RGB用光栅写PNG?
我有3个变量,即R,G,B。我想使用rasterio基于这三个变量制作PNG图像。我尝试使用np.dstack堆叠3张图像,然后使用结果将其写入。
使用rasterio,我尝试用这种方式编写它:
rgb = np.dstack((Nr,Ng,Nb))
finame = "Image_RGB.png"
with rasterio.Env():
with rasterio.open(finame,'w',driver='PNG',height=rgb.shape[0],width=rgb.shape[1],count=1,dtype=rgb.dtype,nodata=0,compress='deflate') as dst:
dst.write(rgb,1)
但是我得到这个错误:
ValueError: Source shape (1,830,793,3) is inconsistent
with given indexes 1
解决方法
这里出了两件事:
- Rasterio 首先是频道,而您的频道是最后。换句话说,
rgb
的形状应该是 (3,830,793) 而不是 (830,793,3)。 - 您设置
count=1
并执行dst.write(rgb,1)
。这使它尝试将 rgb 写入输出文件的第一个波段。相反,您需要count=3
和dst.write(rgb)
。
这对你来说有点晚了,但也许其他人仍然会从我的回答中得到帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。