因为加载的图片的卫星影像,大小1G多,所以使用了GDAL函数包,代码如下:
import gdal
import numpy as np
path = 'zy302a_mux_013000_887134_20181002110440_01_sec_0004_1811018829_ORTHO_PSH.tif' #只需要tif文件
root_path = 'D:\\Data\mask\\'+path
dataset = gdal.Open(root_path)
width = dataset.RasterXSize # 获取数据宽度
height = dataset.RasterYSize # 获取数据高度
outbandsize = dataset.RasterCount # 获取数据波段数
im_geotrans = dataset.GetGeoTransform() # 获取仿射矩阵信息
im_proj = dataset.GetProjection() # 获取投影信息
datatype = dataset.GetRasterBand(1).DataType
im_data = dataset.ReadAsArray()
re_data = np.where(im_data < 1, im_data, 255) #小于1的不变,其他更换为255
# 数据保存
driver = gdal.GetDriverByName("GTiff")
outdataset = driver.Create('D:\\Data\\0-255\\'+path, width, height, outbandsize, datatype)
if (outdataset != None):
outdataset.SetGeoTransform(im_geotrans) # 写入仿射变换参数
outdataset.SetProjection(im_proj) # 写入投影
for i in range(outbandsize):
outdataset.GetRasterBand(i+1).WriteArray(re_data)
del outdataset