Man Linux: Main Page and Category List

NAME

       pnmhisteq - histogram equalise a portable anymap

SYNOPSIS

       pnmhisteq [-gray] [-rmap pgmfile] [-wmap pgmfile] [-verbose] [pnmfile]

DESCRIPTION

       pnmhisteq  increases  the  contrast  of  a  portable  graymap or pixmap
       through the technique of histogram equalisation[1].  A histogram of the
       luminance  of  pixels  in  the  map  is computed, from which a transfer
       function is  calculated  which  spreads  out  intensity  levels  around
       histogram peaks and compresses them at troughs.  This has the effect of
       using the available levels of intensity more  efficiently  and  thereby
       increases the detail visible in the image.

       Mathematically,  if N[i] is the number of pixels of luminosity i in the
       image and T is the total number of pixels, luminosity j is replaced by:

                j
               ---
               \
                >   N[i] / T

               ---
               i=0

       If  you’re processing a related set of images, for example frames of an
       animation, it’s generally best to apply the same intensity map to every
       frame, since otherwise you’ll get distracting frame-to-frame changes in
       the brightness of objects.  pnmhisteq’s  -wmap  option  allows  you  to
       save,  as a portable graymap, the luminosity map computed from an image
       (usually a composite of the images you intend to process  created  with
       pnmcat).   Then,  you  can  subsequently process each of the individual
       images using the luminosity map saved in the file,  supplied  with  the
       -rmap option.

OPTIONS

       -gray     When  processing  a  pixmap,  only  gray  pixels  (those with
                 identical red, green, and blue values) are  included  in  the
                 histogram  and  modified  in  the  output  image.   This is a
                 special purpose option intended for images where  the  actual
                 data  are  gray scale, with colour annotations you don’t want
                 modified.   Weather  satellite  images  that  show  continent
                 outlines in colour are best processed using this option.  The
                 option has no effect when the input is a graymap.

       -rmap mapfile
                 Process the image using the luminosity map specified  by  the
                 portable graymap mapfile.  The graymap, usually created by an
                 earlier run of pnmhisteq with the -wmap  option,  contains  a
                 single  row  with  number  of  columns  equal  to  the maxval
                 (greatest intensity) of the image.  Each pixel in  the  image
                 is   transformed   by   looking  up  its  luminosity  in  the
                 corresponding column in the map file and changing it  to  the
                 value given by that column.

       -wmap mapfile
                 Creates   a   portable   graymap,   mapfile,  containing  the
                 luminosity map computed  from  the  histogram  of  the  input
                 image.   This  map  file  can  be  read on subsequent runs of
                 pnmhisteq with the -rmap option, allowing a group  of  images
                 to be processed with an identical map.

       -verbose  Prints the histogram and luminosity map on standard error.

       All flags can be abbreviated to their shortest unique prefix.

BUGS

       Histogram  equalisation  is effective for increasing the visible detail
       in scientific imagery and in  some  continuous-tone  pictures.   It  is
       often  too drastic, however, for scanned halftone images, where it does
       an excellent job of making halftone artifacts apparent.  You might want
       to  experiment  with  pgnnorm,  ppmnorm,  and  pnmgamma for more subtle
       contrast enhancement.

       The luminosity map file supplied by the -rmap option must have the same
       maxval  as  the input image.  This is always the case when the map file
       was created by the -wmap option  of  pnmhisteq.   If  this  restriction
       causes  a problem, simply adjust the maxval of the map with pnmdepth to
       agree with the input image.

       If the input is a PBM file  (on  which  histogram  equalisation  is  an
       identity  operation),  the  only  effect  of  passing  the file through
       pnmhisteq will be the passage of time.

SEE ALSO

       pgmnorm(1), pnm(5), pnmcat(1), pnmdepth(1), pnmgamma(1), pnmnorm(1)

       [1]  Russ, John C.  The Image Processing  Handbook.   Boca  Raton:  CRC
            Press, 1992.  Pages 105-110.

AUTHOR

              Copyright (C) 1995 by John Walker (kelvin@fourmilab.ch).
                       WWW home page: http://www.fourmilab.ch/

       Permission  to  use, copy, modify, and distribute this software and its
       documentation for any  purpose  and  without  fee  is  hereby  granted,
       without any conditions or restrictions.  This software is provided ‘‘as
       is’’ without express or implied warranty.

                                 19 March 1995                    pnmhisteq(1)