NAME¶
r.thin - Thins non-zero cells that denote linear features in a
raster map.
KEYWORDS¶
raster, thin
SYNOPSIS¶
r.thin
r.thin help
r.thin input=
name output=
name
[
iterations=
integer] [--
overwrite] [--
verbose]
[--
quiet]
Flags:¶
- --overwrite
-
Allow output files to overwrite existing files
- --verbose
-
Verbose module output
- --quiet
-
Quiet module output
Parameters:¶
- input=name
-
Name of input raster map
- output=name
-
Name for output raster map
- iterations=integer
-
Maximal number of iterations
Default: 200
DESCRIPTION¶
r.thin scans the named
input raster map layer and thins non-zero
cells that denote linear features into linear features having a single cell
width.
r.thin will thin only the non-zero cells of the named
input raster
map layer within the current geographic region settings. The cell width of the
thinned
output raster map layer will be equal to the cell resolution of
the currently set geographic region. All of the thinned linear features will
have the width of a single cell.
r.thin will create a new
output raster data file containing the
thinned linear features.
r.thin assumes that linear features are
encoded with positive values on a background of 0's in the
input raster
data file.
NOTE¶
r.thin only creates raster map layers. You will need to run
r.to.vect on the resultant raster map to create a vector (
v.digit) map layer.
r.thin may create small spurs or "dangling lines" during the
thinning process. These spurs may be removed (after creating a vector map
layer) by
v.clean.
r.thin creates a 0/1 output map.
NOTE¶
This code implements the thinning algorithm described in "Analysis of
Thinning Algorithms Using Mathematical Morphology" by Ben-Kwei Jang and
Ronlad T. Chin in
Transactions on Pattern Analysis and Machine
Intelligence, vol. 12, No. 6, June 1990. The definition Jang and Chin
give of the thinning process is "successive removal of outer layers of
pixels from an object while retaining any pixels whose removal would alter the
connectivity or shorten the legs of the sceleton."
The sceleton is finally thinned when the thinning process converges; i.e.,
"no further pixels can be removed without altering the connectivity or
shortening the sceleton legs" (p. 541). The authors prove that the
thinning process described always converges and produces one-pixel thick
sceletons. The number of iterations depends on the original thickness of the
object. Each iteration peels off the outside pixels from the object.
Therefore, if the object is <= n pixels thick, the algorithm should
converge in <= iterations.
SEE ALSO¶
g.region,
r.to.vect,
v.clean,
v.digit,
v.build
AUTHOR¶
Olga Waupotitsch, U.S.Army Construction Engineering Research Laboratory
The code for finding the bounding box as well as input/output code was written
by Mike Baba (DBA Systems, 1990) and Jean Ezell (USACERL, 1988).
Last changed: $Date: 2008-05-16 21:09:06 +0200 (Fri, 16 May 2008) $
Full index
© 2003-2011 GRASS Development Team