r.texture creates raster maps with textural features from a
user-specified raster map layer. The module calculates textural features
based on spatial dependence matrices at 0, 45, 90, and 135
degrees for a distance (default = 1).
r.texture assumes grey levels ranging from 0 to 255 as input.
The input has to be rescaled to 0 to 255 beforehand if the input map range
is outside of this range by using r.rescale.
In general, several variables constitute texture: differences in grey
level values, coarseness as scale of grey level differences, presence or
lack of directionality and regular patterns. A texture can be characterized
by tone (grey level intensity properties) and structure (spatial
relationships). Since textures are highly scale dependent, hierarchical
textures may occur.
r.texture reads a GRASS raster map as input and calculates textural
features based on spatial dependence matrices for north-south, east-west,
northwest, and southwest directions using a side by side neighborhood (i.e.,
a distance of 1). The user should be sure to carefully set the resolution
(using g.region) before running this program, or the computer may
run out of memory. The output consists into four images for each textural
feature, one for every direction.
A commonly used texture model is based on the so-called grey level co-occurrence
matrix. This matrix is a two-dimensional histogram of grey levels
for a pair of pixels which are separated by a fixed spatial relationship.
The matrix approximates the joint probability distribution of a pair of pixels.
Several texture measures are directly computed from the grey level co-occurrence
The following part offers brief explanations of texture measures (after
First-order statistics in the spatial domain
Note that measures "mean", "kurtosis", "range", "skewness", and "standard
deviation" are available in r.neighbors.
- Sum Average (SA)
- Entropy (ENT):
This measure analyses the randomness. It is high when the values of the
moving window have similar values. It is low when the values are close
to either 0 or 1 (i.e. when the pixels in the local window are uniform).
- Difference Entropy (DE)
- Sum Entropy (SE)
- Variance (VAR):
A measure of gray tone variance within the moving window (second-order
moment about the mean)
- Difference Variance (DV)
- Sum Variance (SV)
Second-order statistics in the spatial domain
The second-order statistics texture model is based on the so-called grey
level co-occurrence matrices (GLCM; after Haralick 1979).
- Angular Second Moment (ASM, also called Uniformity):
This is a measure of local homogeneity and the opposite of Entropy.
High values of ASM occur when the pixels in the moving window are
Note: The square root of the ASM is sometimes used as a texture measure,
and is called Energy.
- Inverse Difference Moment (IDM, also called Homogeneity):
This measure relates inversely to the contrast measure. It is a direct measure of the
local homogeneity of a digital image. Low values are associated with low homogeneity
and vice versa.
- Contrast (CON):
This measure analyses the image contrast (locally gray-level variations) as
the linear dependency of grey levels of neighboring pixels (similarity). Typically high,
when the scale of local texture is larger than the distance.
- Correlation (COR):
This measure analyses the linear dependency of grey levels of neighboring
pixels. Typically high, when the scale of local texture is larger than the
- Information Measures of Correlation (MOC)
- Maximal Correlation Coefficient (MCC)
Importantly, the input raster map cannot have more than 255 categories. If needed,
a map with more categories can be rescaled using r.rescale.
Calculation of Angular Second Moment of B/W orthophoto (North Carolina data set):
This calculates four maps (requested texture at four orientations):
ortho_texture_ASM_0, ortho_texture_ASM_45, ortho_texture_ASM_90, ortho_texture_ASM_135.
g.region rast=ortho_2001_t792_1m -p
r.texture -a ortho_2001_t792_1m prefix=ortho_texture
g.region n=221461 s=221094 w=638279 e=638694
d.shadedmap drape=ortho_texture_ASM_0 rel=ortho_2001_t792_1m
- The program can run incredibly slow for large raster maps.
- The method for finding the maximal correlation coefficient, which
requires finding the second largest eigenvalue of a matrix Q, does not
always converge. This is a known issue with this measure in general.
The algorithm was implemented after Haralick et al., 1973 and 1979.
The code was taken by permission from pgmtexture, part of
PBMPLUS (Copyright 1991, Jef Poskanser and Texas Agricultural Experiment
Station, employer for hire of James Darrell McCauley). Manual page
- Haralick, R.M., K. Shanmugam, and I. Dinstein (1973). Textural features for
image classification. IEEE Transactions on Systems, Man, and
- Bouman, C. A., Shapiro, M. (1994). A Multiscale Random Field Model for
Bayesian Image Segmentation, IEEE Trans. on Image Processing, vol. 3, no. 2.
- Jensen, J.R. (1996). Introductory digital image processing. Prentice Hall.
- Haralick, R. (May 1979). Statistical and structural approaches to texture,
Proceedings of the IEEE, vol. 67, No.5, pp. 786-804
- Hall-Beyer, M. (2007). The GLCM Tutorial Home Page
(Grey-Level Co-occurrence Matrix texture measurements). University of Calgary, Canada
G. Antoniol - RCOST (Research Centre on Software Technology - Viale Traiano - 82100 Benevento)
C. Basco - RCOST (Research Centre on Software Technology - Viale Traiano - 82100 Benevento)
M. Ceccarelli - Facolta di Scienze, Universita del Sannio, Benevento
Last changed: $Date$