net.sourceforge.jiu.color.adjustment
Class GammaCorrection
public class GammaCorrection
Corrects the gamma of an image.
Works with
GrayIntegerImage
,
RGBIntegerImage
and
Paletted8Image
.
Only the palette is manipulated for paletted images.
Changes intensity values by applying the formula
f(x) = MAX * (x / MAX)(1 / gamma) to each
x from
[0 ; MAX] to them.
The
MAX value is the maximum value allowed for an intensity value of the
corresponding channel.
It is determined by calling
IntegerImage.getMaxSample(int)
on
the input image.
The
gamma parameter must be given to a
GammaCorrection
operation
before the call to
process
is made.
The valid interval for
gamma is (0.0 ;
MAX_GAMMA
]
(so 0.0 is not a valid value).
Gamma values smaller than 1 will make the image darker, values
larger than 1 will make it brighter.
Usage example
GammaCorrection gamma = new GammaCorrection();
gamma.setInputImage(image);
gamma.setGamma(2.2);
gamma.process();
PixelImage correctedImage = gamma.getOutputImage();
static double | MAX_GAMMA - The maximum allowed value for gamma.
|
private double | gamma
|
MAX_GAMMA
public static final double MAX_GAMMA
The maximum allowed value for gamma.
gamma
private double gamma
createLookupTable
private final int[] createLookupTable(int numSamples)
Creates a lookup table that holds all new values for samples 0 to
numSamples - 1.
getGamma
public double getGamma()
Returns the gamma value to be used for this operation.
- gamma value between 0 (not included) and
MAX_GAMMA
setGamma
public void setGamma(double newGamma)
Sets a new gamma value to be used in this operation.
newGamma
- the new gamma value must be > 0.0 and <= MAX_GAMMA