gadl python 遥感影像百分比拉伸
时间: 2024-01-26 22:14:27 浏览: 214
以下是使用gadl库在Python中实现遥感影像百分比拉伸的示例代码:
```python
import gdal
import numpy as np
def percentStretch(input_image, output_image, ratio):
# 打开输入影像
dataset = gdal.Open(input_image)
if dataset is None:
print("无法打开输入影像!")
return
# 读取影像数据
data = dataset.ReadAsArray()
# 获取影像的最小值和最大值
min_value = np.min(data)
max_value = np.max(data)
# 计算拉伸的阈值
cutmin = min_value + (max_value - min_value) * ratio
cutmax = max_value - (max_value - min_value) * ratio
# 对影像进行百分比拉伸
ndata = 255.0 * (data.astype(np.float32) - cutmin) / float(cutmax - cutmin)
ndata[data < cutmin] = 0
ndata[data > cutmax] = 255
# 创建输出影像
driver = gdal.GetDriverByName("GTiff")
output_dataset = driver.Create(output_image, dataset.RasterXSize, dataset.RasterYSize, dataset.RasterCount, gdal.GDT_Byte)
output_dataset.SetProjection(dataset.GetProjection())
output_dataset.SetGeoTransform(dataset.GetGeoTransform())
# 将处理后的数据写入输出影像
for i in range(dataset.RasterCount):
output_dataset.GetRasterBand(i+1).WriteArray(ndata[i])
# 关闭数据集
dataset = None
output_dataset = None
# 示例调用
percentStretch("input_image.tif", "output_image.tif", 0.02)
```
请注意,上述代码中的`input_image.tif`是输入影像的路径,`output_image.tif`是输出影像的路径,`0.02`是百分比拉伸的比例。你可以根据实际情况修改这些参数。
阅读全文