Next: 13.2.2 Pixel Scale and
Up: 13.2 Colors and Color
Previous: 13.2 Colors and Color
Contents
13.2.1 The Accumulation Buffer: Interpolation and Extrapolation
Haeberli and Voorhies [43] have suggested several interesting
image processing techniques using linear interpolation and extrapolation.
Each technique is stated in terms of the formula:

(12) 
This equation is evaluated on a perpixel basis. and are
the input images, is the output image, and is the blending
factor. If is between and , the equations describe a
linear interpolation. If is allowed to range outside ,
the result is extrapolation [43].
In the limited case where
, these equations may be
implemented using the accumulation buffer via the following steps:
 38.
 Draw into the color buffer.
 39.
 Load , scaling by (glAccumGL_ LOAD, (1x)(GL_ LOAD, (1x))).
 40.
 Draw into the color buffer.
 41.
 Accumulate , scaling by (glAccumGL_ ACCUM,x(GL_ ACCUM,x)).
 42.
 Return the results (glAccumGL_ RETURN, 1(GL_ RETURN, 1)).
It is assumed that and are between and . Since the
accumulation buffer can only store values in the range , for
the case or , the equation must be implemented in a
different way. Given the value , you can modify equation
12 and derive a list of accumulation buffer
operations to perform the operation. Define a scale factor
such that:
Equation 12 becomes:
and the list of steps becomes:
 43.
 Compute .
 44.
 Draw into the color buffer.
 45.
 Load , scaling by
(glAccumGL_ LOAD, (1x)/s(GL_ LOAD, (1x)/s)).
 46.
 Draw into the color buffer.
 47.
 Accumulate , scaling by
(glAccumGL_ ACCUM, x/s(GL_ ACCUM, x/s)).
 48.
 Return the results, scaling by (glAccumGL_ RETURN, s(GL_ RETURN, s)).
The techniques suggested by Haeberli and Voorhies use a degenerate
image as and an appropriate value of to move toward or away
from that image. To increase brightness, is set to a black
image and . To change contrast, is set to a gray image
of the average luminance value of . Decreasing (toward the
gray image) decreases contrast; increasing increases contrast. Saturation
may be varied using a luminance version of as . (For
information on converting RGB images to luminance, see
Section 13.2.4.) Sharpening may be accomplished by setting
to a blurred version of [43].
Next: 13.2.2 Pixel Scale and
Up: 13.2 Colors and Color
Previous: 13.2 Colors and Color
Contents
20010110