图像处理:将栅格图的数值1改为数值255

因为加载的图片的卫星影像,大小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

 

你可能感兴趣的:(图像处理)