pamthreshold
Updated: 12 May 2006
Table Of Contents
NAME
pamthreshold - threshold grayscale image to black and white
SYNOPSIS
pamthreshold [-simple] [-local=widthxheight] [-du-
al=widthxheight]
[-threshold=threshold] [-contrast=threshold] [inputpamfile]
Minimum unique abbreviation of options is 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.
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.
However, pamthreshold doesn’t check; it just thresholds the
first channel as
if it were grayscale samples. So if you feed it e.g. a PPM im-
age, it will
work but produce probably useless results.
The output is a PAM with tuple type BLACKANDWHITE. You can
turn this into a
PBM (if you need to use it with an older program that doesn’t
understand
PAM) with pamtopnm.
The output is to Standard Output.
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
Without any options, pamthreshold uses an iterative algorithm
found in the
wikipedia article Thresholding (image processing) to
compute the
thresholding value. It uses this threshold to globally thresh-
old 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 command option -quiet).
-simple
This selects simple or global thresholding, i.e.
pamthreshold
compares every pixel to the threshold you specify with
-threshold.
This works well for black and white text pages scanned
with a flatbed
scanner and is faster than the default method that it-
eratively
determines the thresholding value first.
-local=widthxheight
This selects local adaptive thresholding (also known as
dynamic
thresholding) using the neighborhood of width and
height around every
pixel. 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], where 0 is
black and 1 is the maxval of the image.
If you don’t specify this option, pamthreshold uses a
threshold of
0.5. Without -simple or -local this option is meaning-
less.
-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 mean-
ingless.
SEE ALSO
pamditherbw, ppmtopgm, pamtopnm, pam
HISTORY
pamthreshold was new in Netpbm 10.34 (June 2006).
AUTHOR
pamthreshold is Copyright © 2006 by Erik Auerswald and re-
leased under the
GPL.
_________________________________________________________________
Table Of Contents
* NAME
* SYNOPSIS
* OPTIONS
* DESCRIPTION
* SEE ALSO
* HISTORY
* AUTHOR