The C++ interface for histogram. More...

array histogram (const array &data, unsigned nbins)
 Histogram takes in the input array data and computes the minimum and maximum of the range. More...
 
array histogram (const array &data, unsigned nbins, float min, float max)
 This function takes in the input array data. More...
 

Detailed Description

The C++ interface for histogram.

A histogram is a representation of the distribution of data in an image. This representation is essentially a graph consisting of the data range or domain on one axis and frequency of occurence on the other axis. All the data in the domain is counted in the appropriate bin. The total number of elements belonging to each bin is known as the bin's frequency.

The regular histogram function creates bins of equal size between the minimum and maximum of the input data (calculated internally). The histogram min-max function takes input parameters minimum and maximum, and divides the bins into equal sizes within the range specified by min and max parameters. All values less than min in the data range are placed in the first (min) bin and all values greater than max will be placed in the last (max) bin.

// Create a histogram using 256 bins
array hist_out = histogram(hist_in, 256);
// Histogram with explicit min/max
// generate sample input data
// generates an array with 50 elements from -25 to 24.
array hist_in = seq(-25, 24)
// Create histogram using 10 bins,with bins scaled from 1 to 10
// bin[0] gets -inf to 1
// bin[9] gets 10 to inf
array hist_out = histogram(img_in, 10, 0, 10);
// hist_out will be [26, 1, 1, 1, 1, 1, 1, 1, 1, 16]

Data normalization via histogram equalization

// img_in and img_out are single channel images
array ihist = histogram(img_in, 256);
array img_out = histequal(img_in, ihist);

Function Documentation

array af::histogram ( const array &  data,
unsigned  nbins 
)

Histogram takes in the input array data and computes the minimum and maximum of the range.

This range is then divided up into nbins number of equally spaced bins. In the output array, the index represents the bin number and the value at the index represents the frequency of the data in that bin. For all elements, the bin it belongs to is computed and incremented.

Parameters
[in]datainput data
[in]nbinsNumber of output bins to populate
Returns
non-normalized histogram of data (one dimensional)
Examples:
examples/image_processing/image_demo.cpp.
array af::histogram ( const array &  data,
unsigned  nbins,
float  min,
float  max 
)

This function takes in the input array data.

It uses the min and max to divide create an output array consisting of nbins number of equally spaced bins between min and max. In the output array, the index represents the bin number and the value at the index represents the frequency of the data in that bin. For all elements, the bin it belongs to is computed and incremented. All elements less than min are placed in the min bin and all elements greated than max are placed in the max bin.

Parameters
[in]datainput data
[in]nbinsNumber of bins to populate between min and max
[in]minminimum bin value (accumulates -inf to min)
[in]maxmaximum bin value (accumulates max to inf)
Returns
non-normalized histogram of data (one dimensional)