Provided by: netpbm_10.0-15.4_amd64 bug

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)