tif图像双线性插值到目标分辨率图像的python代码
时间: 2024-02-21 13:57:50 浏览: 122
图像融合TIF算法Python和MATLAB版本代码
下面是一个利用 Python 库 `rasterio` 对 tif 图像进行双线性插值的示例代码:
```python
import rasterio
from rasterio.enums import Resampling
# 打开原始图像文件
with rasterio.open('input.tif') as src:
# 计算目标分辨率
dst_res = (src.res[0] * 2, src.res[1] * 2)
# 计算目标宽度和高度
dst_width = int(src.width * src.res[0] / dst_res[0])
dst_height = int(src.height * src.res[1] / dst_res[1])
# 设置目标图像的属性
dst_profile = src.profile
dst_profile.update({
'driver': 'GTiff',
'dtype': rasterio.float32,
'count': 1,
'width': dst_width,
'height': dst_height,
'transform': rasterio.Affine(dst_res[0], 0, src.bounds.left, 0, -dst_res[1], src.bounds.top),
'crs': src.crs
})
# 创建目标图像文件
with rasterio.open('output.tif', 'w', **dst_profile) as dst:
# 进行双线性插值
rasterio.warp.reproject(
source=rasterio.band(src, 1),
destination=rasterio.band(dst, 1),
src_transform=src.transform,
src_crs=src.crs,
dst_transform=dst.transform,
dst_crs=dst.crs,
resampling=Resampling.bilinear
)
```
这段代码使用 `rasterio` 库打开一个名为 `input.tif` 的原始图像文件,计算目标分辨率并创建一个名为 `output.tif` 的新图像文件。然后,它将使用 `rasterio.warp.reproject()` 函数对原始图像进行双线性插值,将其重新投影到目标分辨率下,并将结果保存到新的图像文件中。
阅读全文