.tif遥感影像各个波段的均值和方差的计算方法

前言

前阵子进行深度学习研究的时候,有时候要对图像去均值的操作。这时候就要获取图像各个通道的平均值(MEAN)和方差(STD)。在网上找了很多方法,但是大多数是针对.jpg,.png等格式的图像,用的库也是是PIL和CV2。但因为我要处理的图像是.tif格式的遥感影像图,所以上面两个库对我来说都不怎么友好。下面为大家介绍.tif格式图计算平均值和方差的方法。


方法一:arcgis

【获取栅格属性】工具和【栅格计算器】一样,经常失灵(例如,尽管选了计算第二个波段的均值,但是结果还是第一个波段的均值),老是得到一些错误的结果,有可能是因为破解版的原因,我没用过正版的,所以没办法测试是不是破解版的才会出错。还有一个小tip,在使用这个工具之前,最好先用【计算统计数据】计算后再用【获取栅格属性】。别问为什么,问就是经验所得。

这个方法不推荐,因为经常获得错误结果,如果你是正版使用者可以试一下,测试结果可以留言告诉我一下哈哈哈…

arcgis -> 数据管理工具 -> 栅格 -> 栅格属性 -> 【获取栅格属性】

arcgis -> 数据管理工具 -> 栅格 -> 栅格属性 -> 【计算统计数据】

在这里插入图片描述

在这里插入图片描述

方法二:arcpy模块

*****五星推荐

# -*- coding:UTF-8 -*-
import arcpy
'''
    1、gdal 模块可以实现,但是要通过xy坐标值才能获取相应的 pixel value,过程较为麻烦
    2、arcpy 模块里面有 GetRasterProperties_management方法,可以读取不同波段的不同计算方法
    3、直接在arcgis -> 数据管理工具 -> 栅格 -> 栅格属性 -> 获取栅格数据 这个工具不知道为什么在桌面端里面计算的值都是一个波段的值,似乎
        选择波段不起作用,可能是破解版的BUG
'''
path = r'输入tif的路径'
bands = 7  # 输入你影像的波段数量
# 下面函数的功能和方法一【计算统计数据】功能一样
arcpy.CalculateStatistics_management(path, '', '', '', '', '') 
for i in range(1, bands + 1 ):
	# 第二个参数输入MEAN是求平均值,STD是求方差。还有很多个功能,这时候的arcpy真香
    result = arcpy.GetRasterProperties_management(path, 'MEAN', 'Band_{}'.format(i))
    mean = result.getOutput(0)
    print mean

下图为参数二的变量,功能还是很强大滴,如果看不清直接去找arcgis的帮助文档
在这里插入图片描述

方法三:gdal

这个方法其实我也没用过,只是在csdn有看到。有一种是通过gdal遍历所有像元及其像素值,然后再计算平均值和方差,麻烦的我直接放弃。后来又看到了类似arcpy.GetRasterProperties_management()函数,就是
dsout.GetRasterBand(i).ComputeStatistics()。这个方法我没有使用过,仅供参考。

from osgeo import gdal
gdalObject = gdal.Open('路径')
# i 为波段
gdalObject.GetRasterBand(i).ComputeStatistics(false, out tmpDou, out tmpDou, out tmpDou, out tmpDou, null, null)

就是把所有的波段都调用一下ComputeStatistics函数即可,该函数第一个参数为Bool型,按照官网解释,如果为True,那么GDAL会尝试先从金字塔文件中去计算统计值,

第二到五个参数分别为该波段的最小值,最大值,平均值,均方差,最后两个参数是可以用来显示进度的,一般用不上。

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值