envi对遥感图像进行裁剪
时间: 2024-04-24 11:25:29 浏览: 106
你可以使用Python中的库来对遥感图像进行裁剪,其中一个常用的库是GDAL(Geospatial Data Abstraction Library)。以下是一个示例代码,演示如何使用GDAL来裁剪遥感图像:
```python
from osgeo import gdal
def crop_image(input_image, output_image, xmin, ymin, xmax, ymax):
# 打开输入图像
dataset = gdal.Open(input_image)
# 获取输入图像的投影和地理转换信息
projection = dataset.GetProjection()
geotransform = dataset.GetGeoTransform()
# 计算裁剪窗口在图像上的像素坐标
x_offset = int((xmin - geotransform[0]) / geotransform[1])
y_offset = int((ymin - geotransform[3]) / geotransform[5])
width = int((xmax - xmin) / geotransform[1])
height = int((ymax - ymin) / geotransform[5])
# 创建输出图像
driver = gdal.GetDriverByName('GTiff')
output_dataset = driver.Create(output_image, width, height, dataset.RasterCount, dataset.GetRasterBand(1).DataType)
# 设置输出图像的投影和地理转换信息
output_dataset.SetProjection(projection)
output_dataset.SetGeoTransform((xmin, geotransform[1], 0, ymin, 0, geotransform[5]))
# 逐波段写入输出图像数据
for i in range(1, dataset.RasterCount + 1):
band = dataset.GetRasterBand(i).ReadAsArray(x_offset, y_offset, width, height)
output_dataset.GetRasterBand(i).WriteArray(band)
# 关闭数据集
dataset = None
output_dataset = None
# 调用crop_image函数进行裁剪
input_image = 'input_image.tif'
output_image = 'output_image.tif'
xmin = 100.0
ymin = 200.0
xmax = 300.0
ymax = 400.0
crop_image(input_image, output_image, xmin, ymin, xmax, ymax)
```
在上述代码中,`input_image`是输入图像的路径,`output_image`是输出图像的路径,`xmin`、`ymin`、`xmax`和`ymax`是裁剪窗口的坐标范围。通过调用`crop_image`函数,你可以将输入图像裁剪为指定范围的输出图像。请确保已经安装了GDAL库,并将输入图像替换为你自己的遥感图像路径。
阅读全文