Function

vImagePiecewiseGamma_Planar8toPlanarF

Applies a piecewise gamma function to a Planar8 image to produce a PlanarF image.

Declaration

vImage_Error vImagePiecewiseGamma_Planar8toPlanarF(const vImage_Buffer *src, const vImage_Buffer *dest, const float exponentialCoeffs[3], const float gamma, const float linearCoeffs[2], const Pixel_8 boundary, vImage_Flags flags);

Parameters

src

A pointer to a vImage buffer structure that contains the source image.

dest

A pointer to a vImage buffer data structure. You're responsible for filling out the height, width, and rowBytes fields of this structure, and for allocating a data buffer of the appropriate size. On return, the data buffer this structure points to contains the destination image data. When you no longer need the data buffer, you must deallocate the memory.

exponentialCoeffs

An array of three floating-point coefficients for the gamma curve.

gamma

The exponent of a power function for calculating gamma correction.

linearCoeffs

An array of two floating-point coefficients for the linear curve.

boundary

The boundary value for switching from linear to gamma curve.

flags

The options to use when performing the operation. If you plan to perform your own tiling or use multithreading, pass kvImageDoNotTile.

Return Value

kvImageNoError; otherwise, one of the error codes described in Data Types and Constants.

Discussion

The piecewise gamma calculation combines a linear and an exponential (gamma) curve on two regions of the input interval, separated by a specified boundary value. When the input is greater than or equal to the boundary value, the gamma curve is used to generate the output. Otherwise, the linear curve is used.

For each pixel, given that x is the value of the source pixel, the operation can be described as:

if x < boundary:    
    r = linearCoeffs[0]*x + linearCoeffs[1]
else:    
    t = exponentialCoeffs[0]*x + exponentialCoeffs[1]    
    r = pow(t, gamma) + exponentialCoeffs[2]
output pixel value = r

See Also

Correcting Gamma

vImageCreateGammaFunction

Returns a gamma function object.

vImageDestroyGammaFunction

Destroys a gamma function object created.

vImageGamma_Planar8toPlanarF

Applies a gamma function to a Planar8 image to produce a PlanarF image.

vImageGamma_PlanarFtoPlanar8

Applies a gamma function to an image in PlanarF format to an image in Planar8 format.

vImageGamma_PlanarF

Applies a gamma function to a PlanarF image.

vImagePiecewiseGamma_Planar8

Applies a piecewise gamma function to a Planar8 image.

vImagePiecewiseGamma_Planar8toPlanar16Q12

Applies a piecewise gamma function to a Planar8 image to produce a Planar16Q12 image.

vImagePiecewiseGamma_Planar16Q12

Applies a piecewise gamma function to a Planar16Q12 image.

vImagePiecewiseGamma_Planar16Q12toPlanar8

Applies a piecewise gamma function to a Planar16Q12 image to produce a Planar8 image.

vImagePiecewiseGamma_PlanarF

Applies a piecewise gamma function to a PlanarF image.

vImagePiecewiseGamma_PlanarFtoPlanar8

Applies a piecewise gamma function to a PlanarF image to produce a Planar8 image.

vImageSymmetricPiecewiseGamma_Planar16Q12

Applies a symmetric piecewise gamma function to a Planar16Q12 image.

vImageSymmetricPiecewiseGamma_PlanarF

Applies a symmetric piecewise gamma function to a PlanarF image.