1.算法功能简介
图像直方图描述了图像中每个亮度值DN的像元数量的统计分布。它通过每个亮度值的像元数除以图像中总得像元数,即频率直方图。在很多遥感应用中,直方图是遥感图像中所包含的信息的一种有用的图示。每个波段的直方图能提供关于原始图像质量的信息,如其对比度的强弱,是否多峰值等。
下面介绍如何用PIE实现直方图统计分析,主要有两种方法,一个是直接调用PIE.Dataset.DatasetFactory类的ExecuteHistogramStatistics方法进行执行;另一种是直接调用PIE的直方图统计界面进行执行,两种区别在于第一种方法可以获取执行的统计信息,第二种只能作为界面的显示,不能获取界面执行后的统计信息。
2.算法功能实现说明
2.1 实现思路
第一步 |
调用DatasetFactory.ExecuteHistogramStatistics(….)执行直方图统计功能 |
第二步 |
设置参数以便传到第一步的算法中 |
第三步 |
结果显示 |
2.2 示例代码
数据路径 |
百度云盘地址下/ PIE示例数据/栅格数据/4.World/World.tif |
示例代码 |
|
![]() 1 /// <summary> 2 /// 直方图统计法 3 /// </summary> 4 public void HistogramStatistic() 5 { 6 //1、第一种方法 7 #region DatasetFactory类中的方法 8 string filePath = @"D:dataChina1worldWorld.tif";//统计的数据路径 9 int band = 2;//统计的波段编号(从0开始) 注意 索引号不能超过波段数 10 IList<double> listValue = new List<double>();//非统计值 11 float ratio = 100F;//采样比例 12 13 double max = 0;//统计最大值 14 double min = 0;//统计最小值 15 double median = 0;//统计中值 16 double mode = 0;//统计众值 17 double mean = 0;//统计平均值 18 double dev = 0;//统计标准差 19 double k = 0;//峰值 20 double s = 0;//偏度 21 uint numOfPixel = 0;//总像素数 22 IDictionary<double, int>[] mapGray = new Dictionary<double, int>[256];//统计直方图数据(256的数组) 23 24 bool result = DatasetFactory.ExecuteHistogramStatistics(filePath, band, listValue, true, true, ratio, true, ref max, ref min, ref median, ref mode, ref mean, ref dev, ref k, ref s, ref numOfPixel, mapGray); 25 if (!result) return; 26 27 string info = string.Format("数据{9}的第{10}波段的直方图统计信息: 最大值:{0}; 最小值:{1}; 中值:{2}; 众值:{3}; 平均值:{4}; 标准差:{5}; 峰值:{6}; 偏度:{7}; 总像素值:{8}; ", max, min, median, mode, mean, dev, k, s, numOfPixel, filePath, band + 1); 28 MessageBox.Show(info, "直方图统计信息"); 29 #endregion 30 31 //2、第二种方法 32 #region 调用界面显示 和第一种方法有所区别,该界面只能用于显示参数不能获取界面上的统计信息 33 //PIE.AxControls.HistogramStatDialog frmSupervisedClassificaiton = new AxControls.HistogramStatDialog(); 34 //frmSupervisedClassificaiton.Initialize(m_HookHelper.FocusMap); 35 //frmSupervisedClassificaiton.ShowDialog(); 36 37 //(frmSupervisedClassificaiton as IDisposable).Dispose(); 38 //frmSupervisedClassificaiton = null; 39 #endregion 40 } |
2.3 示例截图
图1第一种方法结果
图2:调界面显示结果(第二种方法)