使用“gdal”将大彩色图像保存为“GTiff”

2024-03-16

我正在尝试保存尺寸较大的图像(15000, 80000, 3)。这个数组是一个 numpy 数组,我初始化为im_final = np.zeros((15000,80000,,3))。为了节省费用,我使用gdal像这样:

dst_ds = gdal.GetDriverByName('GTiff').Create('val.tif', 80000, 15000, 3, gdal.GDT_Byte)
dst_ds.GetRasterBand(1).WriteArray(im_final[:,:,0])   # write r-band to the    raster
dst_ds.GetRasterBand(2).WriteArray(im_final[:,:,1])   # write g-band to the raster
dst_ds.GetRasterBand(3).WriteArray(im_final[:,:,2])   # write b-band to the raster
dst_ds.FlushCache()                     # write to disk
dst_ds = None

当我保存它时,生成的图像是黑白的。但是,我需要图像为 RGB,有人知道问题是什么吗?此外,中的值im_final are uint16.


问题是你正在尝试写uint16 into a uint8 (gdal.GDT_Byte) 图像。如果您确实需要 8 位图像(例如您想在非 GIS 程序中查看此图像),最佳实践是缩放im_final0-255 之间。这可以是从 0-65535 到 0-255 的映射,或者每个频段的最小/最大到 0-255 的映射,或者任何其他数量的方式。

如果值在im_final很重要然后使用gdal.GDT_UInt16 in driver.Create().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“gdal”将大彩色图像保存为“GTiff” 的相关文章

随机推荐