The IlvComponentTransferFilter Class
The IlvComponentTransferFilter class lets you perform component-wise remapping on images as follows:
R' = feFuncR( R )
G' = feFuncG( G )
B' = feFuncB( B )
A' = feFuncA( A )
feFuncR, feFuncG, feFuncB, and feFuncA define the transfer functions for each component.
It allows operations such as brightness adjustment, contrast adjustment, color balance, or thresholding.
Five predefined transfer functions are defined:
*identity: C' = C
*table: the function is defined by linear interpolation into a lookup table by attribute values, which provides a list of n+1 values (that is, v0 to vn) in order to identify n interpolation ranges. Interpolations use the following formula:
k/N <= C < (k+1)/N => C' = vk + (C - k/N)*N * (vk+1 - vk)
*discrete: the function is defined by the step function defined by attribute values, which provides a list of n values (that is, v0 to vn-1) in order to identify a step function consisting of n steps. The step function is defined by the following formula:
k/N <= C < (k+1)/N => C' = vk
*linear: the function is defined by the following linear equation:
C' = slope * C + intercept
where slope and intercept are user specified.
*gamma: the function is defined by the following exponential function:
C' = amplitude * pow(C, exponent) + offset
where amplitude, exponent, and offset are user specified.
Transfer functions are classes on their own and can be redefined (see IlvTransferFunction, IlvIdentityTransfer, IlvLinearTransfer, IlvTableTransfer, IlvDiscreteTransfer, and IlvGammaTransfer).
Published date: 05/24/2022
Last modified date: 02/24/2022