Pamthreshold User Manual(1) General Commands Manual Pamthreshold User Manual(1)
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 dou-
ble 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 (al-
pha) channel. So if you feed it e.g. a PPM image, it will work but pro-
duce probably useless results.
The output is a PAM with tuple type BLACKANDWHITE or BLACKANDWHITE_AL-
PHA, 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 ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamthreshold recognizes the
following command line options:
Without any options, pamthreshold uses a method based on the iterative
algorithm found in the ]8;;http://www.wikipedia.org/\wikipedia]8;;\ article ]8;;http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29\ Thresholding (image process-
ing)]8;;\ to compute the thresholding value. ( ]8;;http://en.wikipedia.org/w/index.php?title=Thresholding_%28image_processing%29&oldid=132306976\this version]8;;\ 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 thresh-
old 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 -thresh-
old. 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 ques-
tion. pamthreshold computes the threshold individually for each
pixel of the image. This can accommodate changing lighting con-
ditions 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 thresh-
old for low contrast neighborhoods and local thresholding other-
wise. This can preserve larger back- respectively foreground ar-
eas than local adaptive thresholding. This algorithm was pro-
posed 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 threshold-
ing. The value is a floating point number in the range [0, 1]
directly proportional to the Netpbm sample values, where 0 corre-
sponds 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 threshold-
ing 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
netpbm documentation 06 June 2007 Pamthreshold User Manual(1)
Generated by dwww version 1.16 on Tue Dec 16 05:10:19 CET 2025.