栅格影像高斯滤波平滑代码分享

本文分享了一个使用OpenCV和GDAL库在Python中对单波段栅格影像进行高斯滤波平滑的代码示例。代码首先通过GDAL打开和读取TIFF图像,然后应用3x3的高斯滤波器,最后将处理后的结果保存为新的TIFF文件。
摘要由CSDN通过智能技术生成

单波段栅格影像高斯滤波平滑代码分享

记得更改一下命名变量,同时这个是单波段不是多波段哦,多波段代码可以看参考链接里的小姐姐的分享。


import cv2
from osgeo import gdal

#定义图像打开方法
def image_open(image):
    dataset = gdal.Open(image)
    if dataset == "None":
       print("无法打开数据")
    return dataset

#命名相关变量
FilePath = r"E:\157.tif"
data = image_open(FilePath)
Projection = data.GetProjection()
Transform = data.GetGeoTransform()

#按照np方式读取图像
X = data.RasterXSize
Y = data.RasterYSize
DataArray = data.ReadAsArray(0, 0, X, Y)
height, width = DataArray.shape
print(X,Y, width, height)
band=1

#高斯滤波过程,滤波核大小为3×3
GS = cv2.GaussianBlur(DataArray, (3, 3), 0)

#输出数据集
output1 = gdal.GetDriverByName("GTiff")
output2 = output1.Create("GS157.tif", width, height,1, gdal.GDT_Float32)
output2.SetProjection(Projection)
output2.SetGeoTransform(Transform)
output2.GetRasterBand(1).WriteArray(GS)

output2.FlushCache()  # 写入硬盘
output2 = None

参考:
https://zhuanlan.zhihu.com/p/142058460

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值