# Histogram-Based Statistics

This code snippet shows how to compute statistics based on an histogram.

## C++

```cpp
#include <eVision/EasyImage/EasyImage.h>
```

```cpp
using namespace eVision;
// Image constructor
EImageBW8 srcImage;
// ...
// Histogram constructor
EBWHistogramVector histo;
// Compute the histogram
EasyImage::Histogram(&srcImage, &histo);
// Compute the average gray-level value
float average = EasyImage::AnalyseHistogram(&histo, EHistogramFeature_AveragePixelValue, 0, 255);
// Compute the gray-level standard deviation
float deviation = EasyImage::AnalyseHistogram(&histo, EHistogramFeature_PixelValueStdDev, 0, 255);
```

#### SEE ALSO
[`EasyImage::Histogram`](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a844bd52f1e6c61fe0264412ed74d15de) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#ab9c24a850843e901bd1dc7fc360376b5) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyImage.html#ad1a8be6eacbbef1eef655ebdfc015aa9), [`EasyImage::AnalyseHistogram`](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a75bc97a0b9edcd2200bf5041e431e993) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#abfe77a0ab52c05af84c56b6a630e84d6) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyImage.html#a7e34e79e1e27369c4551fe555e6128a4)

## C#

```cs
using eVision;
```

```cs
// Image constructor
EImageBW8 srcImage = new EImageBW8();
// ...
// Histogram constructor
EBWHistogramVector histo = new EBWHistogramVector();
// Compute the histogram
EasyImage.Histogram(srcImage, histo);
// Compute the average gray-level value
float average = EasyImage.AnalyseHistogram(histo, EHistogramFeature.AveragePixelValue, 0, 255);
// Compute the gray-level standard deviation
float deviation = EasyImage.AnalyseHistogram(histo, EHistogramFeature.PixelValueStdDev, 0, 255);
```

#### SEE ALSO
[`EasyImage.Histogram`](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#ab9c24a850843e901bd1dc7fc360376b5) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a844bd52f1e6c61fe0264412ed74d15de) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyImage.html#ad1a8be6eacbbef1eef655ebdfc015aa9), [`EasyImage.AnalyseHistogram`](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#abfe77a0ab52c05af84c56b6a630e84d6) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a75bc97a0b9edcd2200bf5041e431e993) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyImage.html#a7e34e79e1e27369c4551fe555e6128a4)

## Python

```py
import eVision
# Image constructor
src_image = eVision.EImageBW8()
# ...
# Histogram constructor
histo = eVision.EBWHistogramVector()
# Compute the histogram
eVision.EasyImage.Histogram(src_image, histo)
# Compute the average gray-level value
average = eVision.EasyImage.AnalyseHistogram(histo, eVision.EHistogramFeature.AveragePixelValue, 0, 255)
# Compute the gray-level standard deviation
deviation = eVision.EasyImage.AnalyseHistogram(histo, eVision.EHistogramFeature.PixelValueStdDev, 0, 255)
```

#### SEE ALSO
[`EasyImage.Histogram`](../../../../../doxygen_python/classeVision_1_1EasyImage.html#ad1a8be6eacbbef1eef655ebdfc015aa9) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a844bd52f1e6c61fe0264412ed74d15de) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#ab9c24a850843e901bd1dc7fc360376b5), [`EasyImage.AnalyseHistogram`](../../../../../doxygen_python/classeVision_1_1EasyImage.html#a7e34e79e1e27369c4551fe555e6128a4) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyImage.html#a75bc97a0b9edcd2200bf5041e431e993) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyImage.html#abfe77a0ab52c05af84c56b6a630e84d6)
