遥感图像处理 | 利用GDAL绘制统计直方图

本文详细介绍了如何使用GDAL库的GDALRasterBand::GetHistogram()函数获取图像的直方图,并提供了完整的代码示例,包括设置直方图的参数、获取图像的统计数据以及绘制直方图的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GDAL获取直方图的函数叫做GDALRasterBand::GetHistogram()。定义如下:

CPLErrGDALRasterBand::GetHistogram   (
double dfMin,
double dfMax,
int nBuckets,
int *     panHistogram,
int bIncludeOutOfRange,
int bApproxOK,
GDALProgressFunc   pfnProgress,
void *   pProgressData  
)

关于绘制统计图的代码

               
                Band band = ds.GetRasterBand(bandn);
                
                double dfmin; double dfmax; double pdfMean; double pdfStdDev;
                band.GetStatistics(1, 1, out dfmin, out dfmax, out pdfMean, out pdfStdDev);
                
                int nBuckets = 512;//表示直方图统计的份数
                int[] panHistogram = new int[512];//存储直方图的数组
                int include_out_of_range = 0;//如果这个参数设置为TRUE,那么图像中的像元值小于最小值的像元值将被统计到直方图数组中的第一个里面去,图像中的像元值大于最大值的像元会被统计到直方图数组中的最后一个里面去。如果设置为FALSE,那么图像中的像元值小于最小值的像元不进行统计,同样,像元值超过最大值的像元值也不进行统计。
                int approx_ok = 1;
                Gdal.GDALProgressFuncDelegate callback = null;
                string callback_data = null;
                band.GetHistogram(dfmin, dfmax, nBuckets, panHistogram, include_out_of_range, approx_ok, callback, callback_data);
                Graphics g = panel1.CreateGraphics();
                g.Clear(Color.White);
                drawhistogram(panHistogram, dfmax, dfmin);


 根据已知的最大最小值和统计值的数组便可画出最后的统计直方图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值