GDAL+Python实现栅格影像处理之小斑块去除

GDAL+Python实现栅格影像处理之小斑块去除

小斑块去除

指定波段中小于指定像元个数的细小图斑清除,并且使用周围的像元值来替换。

使用方法

这里我们采用gdal.SieveFilter()方法进行小斑块去除。

  • 参数说明(未列完)
参数 说明
srcBand 输入数据波段
maskBand 设置掩码波段(只对掩码区域进行处理)
dstBand 输出数据波段
threshold 去除板块的最大像元个数
connectedness 图斑连通方式,通常指定为4或8
  • 代码实现
def SieveFilterTheRaster():
    # 参数说明 输入数据波段 、设置掩码波段(只对掩码区域进行处理)、输出数据波段、去除板块的最大像元个数、图斑连通方式
    threshold = 2
    connectedness = 4
    options = []
    format = 'GTiff'
    mask = 'none'
    inputfile=r'G:/studyprojects/gdal/GdalStudy/Files/images/CHA.tif'
    src_ds = gdal.Open(inputfile, gdal.GA_Update)
    srcband = src_ds.GetRasterBand(1)
    dstband = srcband
    if mask is 'default':
        maskband = srcband.GetMaskBand()
    elif mask is 'none':
        maskband = None
    else:
        mask_ds = gdal.Open(mask)
        maskband = mask_ds.GetRasterBand(1)
    prog_func = test()
    result = gdal.SieveFilter(srcband, maskband, dstband,
                              threshold, connectedness,
                              callback=prog_func)

效果展示

在这里插入图片描述

发布了31 篇原创文章 · 获赞 29 · 访问量 8738

猜你喜欢

转载自blog.csdn.net/m0_38051293/article/details/103246708