Provided by: netpbm_11.07.00-2_amd64 bug

NAME

       pamthreshold - threshold grayscale image to black and white

SYNOPSIS

       pamthreshold      [-simple]     [-local=widthxheight]     [-dual=widthxheight]     [-threshold=threshold]
       [-contrast=threshold] [inputpamfile]

       Minimum unique abbreviations of options are acceptable. You may use double hyphens instead  of  a  single
       hyphen  to denote options. You may use white space in place of the equals sign to separate an option name
       from its value.

DESCRIPTION

       This program is part of Netpbm(1).

       pamthreshold thresholds a grayscale image. Thresholding means dividing  the  image  into  background  and
       foreground by comparing every pixel to a thresholding value.

       The  input  should  be  a  PGM image or a PAM image of tuple type GRAYSCALE or GRAYSCALE_ALPHA.  However,
       pamthreshold doesn't check; it just thresholds the first channel as if it were grayscale samples  and  if
       there  is  a  second channel, processes it as if it is a transparency (alpha) channel.  So if you feed it
       e.g. a PPM image, it will work but produce probably useless results.

       The output is a PAM with tuple type BLACKANDWHITE or BLACKANDWHITE_ALPHA, depending on whether the  input
       has  a  transparency  channel.  You can turn this into a PBM (if you need to use it with an older program
       that doesn't understand PAM, or you can't afford the 8X amount of space that PAM uses for the image) with
       pamtopnm.

       The output is to Standard Output.

       When  the  input  has a transparency channel, pamthreshold includes a transparency channel in the output.
       Since the output has maxval 1, the transparency channel can indicate  only  fully  transparent  or  fully
       opaque.   pamthreshold  make it fully transparent where the input is more than half transparent and fully
       opaque where it isn't.

       The transparency function was new in Netpbm 10.43 (June 2008).  Before  that,  pamthreshold  ignores  any
       transparency channel in the input.

       Another  way  to convert a grayscale image to black and white is to dither.  Dithering is using clustered
       black and white pixels such that if you step back and look at the picture,  you  see  varying  levels  of
       gray.  pamditherbw does dithering.

OPTIONS

       In addition to the options common to all programs based on libnetpbm (most notably -quiet, see
        Common Options ⟨index.html#commonoptions⟩ ), pamthreshold recognizes the following command line options:

       Without  any  options, pamthreshold uses a method based on the iterative algorithm found in the wikipedia
       ⟨http://www.wikipedia.org/⟩  article
        Thresholding (image processing)http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29⟩    to
       compute           the           thresholding           value.            (          this          version
       ⟨http://en.wikipedia.org/w/index.php?title=Thresholding_%28image_processing%29&oldid=132306976⟩   of  the
       Wikipedia article was current at the time of this writing).  It uses this threshold to globally threshold
       the image.  This should work well for most images.   The  program  issues  a  message  telling  you  what
       threshold  it  used.   (Netpbm  messages  go to Standard Error, and you can turn them off with the Netpbm
       common option -quiet).

       Options -simple, -local, and -dual select other methods.

       -simple
              This selects simple or  global  thresholding,  i.e.  pamthreshold  compares  every  pixel  to  the
              threshold  you  specify  with  -threshold.   Those  with a brightness greater than or equal to the
              threshold become white; others become black.  This works well  for  black  and  white  text  pages
              scanned  with  a flatbed scanner and is faster than the default method that iteratively determines
              the thresholding value first.

       -local=widthxheight
              This  selects  local  adaptive  thresholding  (also  known  as  dynamic  thresholding)  using  the
              neighborhood which is the square width pixels wide and height pixels high centered on the pixel in
              question.  pamthreshold computes the threshold individually for each pixel of the image.  This can
              accommodate  changing lighting conditions in the image.  Depending on the size of the neighborhood
              this can be quite slow.

       -dual=widthxheight
              This selects a dual thresholding algorithm using a global threshold for low contrast neighborhoods
              and  local  thresholding  otherwise.  This can preserve larger back- respectively foreground areas
              than local adaptive thresholding.  This algorithm was  proposed  in  the  paper  "An  Approach  To
              Licence Plate Recognition" by J.R. Parker and Pavol Federl.

       -threshold=threshold
              This  sets the thresholding value for simple or local thresholding.  The value is a floating point
              number in the range [0, 1] directly proportional to the Netpbm sample values, where 0  corresponds
              to black and 1 to the maxval of the image.

              If you don't specify this option, pamthreshold uses a threshold of 0.5.

              Without -simple, -local, or -dual, this option is meaningless.

              The  meaning of the threshold depends upon the kind of thresholding you do (as determined by other
              options).  Roughly, pixels at least as bright as the threshold become white in  the  output  while
              others become black.

       -contrast=threshold
              This  sets  the  threshold  to  determine  if  a  neighborhood  has  low  contrast or not for dual
              thresholding.  The value is a floating point number in the range [0, 1].

              If you don't specify this option, pamthreshold uses a contrast threshold of 0.05.   Without  -dual
              this option is meaningless.

SEE ALSO

       pamditherbw(1), ppmtopgm(1), pamtopnm(1), pam(1)

HISTORY

       pamthreshold was new in Netpbm 10.34 (June 2006).

AUTHOR

       pamthreshold is Copyright © 2006 by Erik Auerswald and released under the GPL(1).

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/pamthreshold.html