af_histequalize

The C interface for histogram equalization. More...

afError af_histequalize_S (float *d_out, unsigned length, const float *d_data, unsigned nbins, const float *d_bins)
 Equalize a given vector or matrix based on a given histogram. More...
 

Detailed Description

The C interface for histogram equalization.

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

afError af_histequalize_S ( float *  d_out,
unsigned  length,
const float *  d_data,
unsigned  nbins,
const float *  d_bins 
)

Equalize a given vector or matrix based on a given histogram.

Parameters
[out]d_outDevice-side equalized data
[in]lengthLength of input vector d_data (M*N for matrix)
[in]d_dataDevice-side vector or matrix of elements to equalize
[in]nbinsNumber of bins in h_bins
[in]d_binsDevice-side bins
Note
Currently only vector input histograms are supported
Only the range [0-255] (256 bins) is supported.Single-precision histogram normalization.