pnmhisteq(1)                General Commands Manual               pnmhisteq(1)

       pnmhisteq - histogram equalise a portable anymap

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

       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 func-
       tion 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:

                >   N[i] / T


       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.

       -gray     When processing a pixmap, only gray pixels (those with  iden-
                 tical  red,  green, and blue values) are included in the his-
                 togram 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 (great-
                 est  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  luminos-
                 ity 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.

       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  con-
       trast 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 iden-
       tity operation), the only effect of passing the file through  pnmhisteq
       will be the passage of time.

       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.

              Copyright (C) 1995 by John Walker (
                       WWW home page:

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

                                 19 March 1995                    pnmhisteq(1)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2022 Hurricane Electric. All Rights Reserved.