extendedopacity man page on YellowDog

Printed from http://www.polarhome.com/service/man/?qf=extendedopacity&af=0&tf=2&of=YellowDog


				extendedopacity

   Created: 17 April 2003

   This	 page  is a copy of http://www.sgi.com/grafica/interp/ on
April 17, 2003,
   with some slight formatting changes, included  in  the  Netpbm
documentation
   for convenience.

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 process‐
ing operations.
   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 consid‐
ered 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 image 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/extrapo‐
lation formula
   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 accelera‐
tion.

   In the following examples, a single alpha value  is	used  per
image. However
   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 degener‐
ate (zero
   alpha)  image. Interpolation darkens the image, and extrapola‐
tion brightens
   it. In both cases, brighter pixels are affected more.  bright‐
ness

  Changing Contrast

   Contrast  can  be  controlled using a constant gray image with
the average
   image luminance. Interpolation reduces contrast and extrapola‐
tion 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 affected.

  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 degenerate
   version, saturation can be decreased using interpolation,  and
increased
   using  extrapolation.  This avoids computationally more expen‐
sive conversions
   to and from HSV space. Repeated update in an	 interactive  ap‐
plication 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 ad‐
justed by this
   approach. If a blurred image is used as the degenerate  image,
interpolation
   attenuates high frequencies to varying degrees, and extrapola‐
tion boosts
   them, sharpening the image by unsharp masking.  Varying  alpha
acts as a
   kernel scale factor, so a series of convolutions differing on‐
ly 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
sharpening
   form a continuum. Global contrast pushes pixel components  to‐
wards or away
   from	 the  average image luminance. Local contrast is similar,
but uses local
   area luminance. Unsharp masking is the extreme case, using on‐
ly the color of
   nearby pixels.

  Combined Processing

   An  unusual	property  of this interpolation/extrapolation ap‐
proach 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
   manipulation	 interactively.	 Image	applications   frequently
need to
   interactively   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 extrapo‐
lation of images
   can be a unifying approach, providing a single  function  that
supports many
   common image processing operations.

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

   These image manipulation techniques can be used in paint  pro‐
grams to easily
   implement   brushes	 that saturate, sharpen, lighten, darken,
or modify
   contrast and color. The only major change needed is to support
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.
Application
   developers  should  allow users to extrapolate parameters when
practical.

  References

   For a slightly extended version of this article, see:
   P. Haeberli and D. Voorhies. Image Processing by Linear Inter‐
polation and
   Extrapolation.  IRIS	 Universe Magazine No. 28, Silicon Graph‐
ics, Aug, 1994.

[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net