[英]How to write PNG in rasterio from a stacked RGB?
我有 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
這里有兩個問題:
rgb
的形狀應該是 (3, 830, 793) 而不是 (830, 793, 3)。count=1
並執行dst.write(rgb, 1)
。 這使它嘗試將 rgb 寫入輸出文件的第一個波段。 相反,您需要count=3
和dst.write(rgb)
。這對你來說有點晚了,但也許其他人仍然會從我的回答中得到幫助。
根據亞瑟的回答和原始代碼,這是這個問題的一個解決方案,最后一行應該是:
dst.write(np.rollaxis(rgb, 2,0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.