Documentation
histequal

The C++ interface for histequal. More...

 array histequal (const array &data, const array &histogram)

Detailed Description

The C++ interface for histequal.

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::histequal ( const array & data, const array & histogram )
Parameters
 [in] data non-normalized input (!! assumes values [0-255] !!) [in] histogram target histogram to approximate in output (based on # of bins)
Returns
data with histogram approximately equal to histogram
Note
image must be grayscale (single channel)
Examples:
examples/image_processing/image_demo.cpp.