dwww Home | Manual pages | Find package

Image Proce...trapolation(5)  File Formats Manual  Image Proce...trapolation(5)

Created: 17 April 2003

NAME
       extendedopacity - theory of netpbm interpolation and extrapolation

DESCRIPTION
       This  page is a copy of http://www.sgi.com/misc/grafica/interp/ on April
       17, 2003, with some slight formatting changes, included  in  the  Netpbm
       documentation for convenience.  Since at least June 11, 2005, the source
       page has been missing.

Image Processing By Interpolation and Extrapolation
       Paul Haeberli and Douglas Voorhies

   Introduction
       Interpolation  and  extrapolation  between  two images offers a general,
       unifying approach to many common point and area image processing  opera-
       tions.  Brightness, contrast, saturation, tint, and sharpness can all be
       controlled  with  one formula, separately or simultaneously.  In several
       cases, there are also performance benefits.

       Linear interpolation is often used to blend two images.  Blend fractions
       (alpha) and (1 - alpha) are used in a weighted average of each component
       of each pixel:

             out = (1 - alpha)*in0 + alpha*in1

       Typically alpha is a number in the range 0.0 to 1.0.  This  is  commonly
       used  to linearly interpolate two images.  What is less often considered
       is that alpha may range beyond the interval 0.0 to  1.0.   Values  above
       one  subtract a portion of in0 while scaling in1.  Values below 0.0 have
       the opposite effect.

       Extrapolation is particularly useful if a degenerate version of the  im-
       age  is used as the image to get "away from."  Extrapolating away from a
       black-and-white image increases saturation.  Extrapolating away  from  a
       blurred image increases sharpness.  The interpolation/extrapolation for-
       mula offers one-parameter control, making display of a series of images,
       each differing in brightness, contrast, sharpness, color, or saturation,
       particularly easy to compute, and inviting hardware acceleration.

       In the following examples, a single alpha value is used per image.  How-
       ever other processing is possible, for example where alpha is a function
       of X and Y, or where a brush footprint controls alpha near the cursor.

   Changing Brightness
       To  control  image brightness, we use pure black as the degenerate (zero
       alpha)  image.   Interpolation  darkens  the  image,  and  extrapolation
       brightens it.  In both cases, brighter pixels are affected more.

       brightness

   Changing Contrast
       Contrast  can be controlled using a constant gray image with the average
       image  luminance.   Interpolation  reduces  contrast  and  extrapolation
       boosts  it.   Negative alpha generates inverted images with varying con-
       trast.  In all cases, the average image luminance is constant.

       contrast

       If middle gray or the average pixel color is used instead,  contrast  is
       again  altered,  but  with  middle  gray or the average color left unaf-
       fected.  Shades and colors far away from the chosen value are  most  af-
       fected.

   Changing Saturation
       To alter saturation, pixel components must move towards or away from the
       pixel's  luminance value. By using a black-and-white image as the degen-
       erate version, saturation can be decreased using interpolation, and  in-
       creased using extrapolation.  This avoids computationally more expensive
       conversions  to  and  from HSV space.  Repeated update in an interactive
       application is especially fast, since the luminance of each  pixel  need
       not  be  recomputed.  Negative alpha preserves luminance but inverts the
       hue of the input image.

       saturation

   Sharpening an Image
       Any convolution, such as sharpening or blurring, can be adjusted by this
       approach.  If a blurred image is used as the degenerate image,  interpo-
       lation attenuates high frequencies to varying degrees, and extrapolation
       boosts  them,  sharpening  the  image by unsharp masking.  Varying alpha
       acts as a kernel scale factor, so a  series  of  convolutions  differing
       only in scale can be done easily, independent of the size of the kernel.
       Since  blurring,  unlike  sharpening,  is  often  a separable operation,
       sharpening by extrapolation may be far more efficient for large kernels.

       sharpening

       Note that global contrast control, local contrast control, and  sharpen-
       ing  form  a continuum.  Global contrast pushes pixel components towards
       or away from the average image luminance.  Local  contrast  is  similar,
       but uses local area luminance.  Unsharp masking is the extreme case, us-
       ing only the color of nearby pixels.

   Combined Processing
       An unusual property of this interpolation/extrapolation approach is that
       all  of  these  image  parameters  may  be altered simultaneously.  Here
       sharpness, tint, and saturation are all altered.

       combined

   Conclusion
       Image applications frequently need to produce multiple degrees of manip-
       ulation interactively.  Image applications frequently need  to  interac-
       tively  manipulate an image by continuously changing a single parameter.
       The best hardware mechanisms employ a single "inner loop" to  achieve  a
       wide  variety of effects.  Interpolation and extrapolation of images can
       be a unifying approach, providing a single function  that  can  do  many
       common image processing operations.

       Since a degenerate image is sometimes easier to calculate, extrapolation
       may  offer a more efficient method to achieve effects such as sharpening
       or saturation.  Blending is a linear operation, and so it must  be  per-
       formed  in linear, not gamma-warped space.  Component range must also be
       monitored, since clamping, especially of the  degenerate  image,  causes
       inaccuracy.

       These  image  manipulation  techniques  can be used in paint programs to
       easily implement brushes that saturate,  sharpen,  lighten,  darken,  or
       modify contrast and color.  The only major change needed is to work with
       alpha values outside the range 0.0 to 1.0.

       It  is  surprising  and  unfortunate how many graphics software packages
       needlessly limit interpolant values to the range 0.0 to  1.0.   Applica-
       tion  developers should allow users to extrapolate parameters when prac-
       tical.

   References
       For a slightly extended version of this article, see: P. Haeberli and D.
       Voorhies. Image Processing by Linear  Interpolation  and  Extrapolation.
       IRIS Universe Magazine No. 28, Silicon Graphics, Aug, 1994.

DOCUMENT SOURCE
       This  manual  page  was generated by the Netpbm tool 'makeman' from HTML
       source.  The master documentation is at

              http://netpbm.sourceforge.net/doc/extendedopacity.html

netpbm documentation                               Image Proce...trapolation(5)

Generated by dwww version 1.16 on Tue Dec 16 07:51:59 CET 2025.