r.texture(1grass)


NAME

   r.texture  - Generate images with textural features from a raster map.

KEYWORDS

   raster, algebra, statistics, texture

SYNOPSIS

   r.texture
   r.texture --help
   r.texture     [-sa]     input=name     output=basename     [size=value]
   [distance=value]       [method=string[,string,...]]       [--overwrite]
   [--help]  [--verbose]  [--quiet]  [--ui]

   Flags:
   -s
       Separate output for each angle (0, 45, 90, 135)

   -a
       Calculate all textural measurements

   --overwrite
       Allow output files to overwrite existing files

   --help
       Print usage summary

   --verbose
       Verbose module output

   --quiet
       Quiet module output

   --ui
       Force launching GUI dialog

   Parameters:
   input=name [required]
       Name of input raster map

   output=basename [required]
       Name for output basename raster map(s)

   size=value
       The size of moving window (odd and >= 3)
       Default: 3

   distance=value
       The distance between two samples (>= 1)
       The distance must be smaller than the size of the moving window
       Default: 1

   method=string[,string,...]
       Textural measurement method
       Options:  asm,  contrast, corr, var, idm, sa, sv, se, entr, dv, de,
       moc1, moc2

DESCRIPTION

   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.

   In  order to take into account the scale of the texture to be measured,
   r.texture allows the user to define the size of the moving  window  and
   the  distance  at  which  to compare pixel grey values.  By default the
   module averages the results over the 4 orientations, but the  user  can
   also   request   output   of  the  texture  variables  in  4  different
   orientations (flag -s). Please note that angles are defined in  degrees
   of  east and they increase counterclockwise, so 0 is East - West, 45 is
   North-East - South-West, 90 is North  -  South,  135  is  North-West  -
   South-East.

   The  user  can  either chose one or several texture measures (see below
   for their description) using the method parameter, or can  request  the
   creating of maps for all available methods with the -a.

   r.texture  assumes  grey  levels  ranging  from 0 to 255 as input.  The
   input is automatically rescaled to 0 to 255 if the input map  range  is
   outside  of  this  range.   In  order to reduce noise in the input data
   (thus generally reinforcing the textural features),  and  to  speed  up
   processing,  it  is  recommended  that  the  user recode the data using
   equal-probability quantization.  Quantization rules for r.recode can be
   generated  with r.quantile -r using e.g 16 or 32 quantiles (see example
   below).

NOTES

   Texture is a feature  of  specific  land  cover  classes  in  satellite
   imagery.   It  is  particularly  useful  in  situations  where spectral
   differences between classes are small, but classes are  distinguishable
   by  their  organisation  on  the  ground,  often  opposing  natural  to
   human-made spaces: cultivated fields vs meadows or golf  courses,  palm
   tree  plantations  vs  natural  rain  forest, but texture can also be a
   natural phenomen: dune fields, different canopies due to different tree
   species.  The  usefulness and use of texture is highly dependent on the
   resolution  of  satellite  imagery  and  on  the  scale  of  the  human
   intervention  or  the phenomenon that created the texture (also see the
   discussion of scale dependency below).  The  user  should  observe  the
   phenomenon  visually  in  order  to determine an adequat setting of the
   size parameter.

   The output of r.texture can constitute very useful additional variables
   as  input  for  image  classification  or  image  segmentation  (object
   recognition).  It can be used in supervised  classification  algorithms
   such  as  i.maxlik  or  i.smap, or for the identification of objects in
   i.segment, and/or for the characterization of these objects  and  thus,
   for example, as one of the raster inputs of the i.segment.stats addon.

   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 uses the common texture model based  on  the  so-called  grey
   level  co-occurrence matrix as described by Haralick et al (1973). 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 matrix.

   The following part offers brief explanations  of  the  Haralick  et  al
   texture measures (after Jensen 1996).

   First-order statistics in the spatial domain
       *   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)
   Note   that  measures  "mean",  "kurtosis",  "range",  "skewness",  and
   "standard deviation" are available in r.neighbors.

   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
           very similar.
           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 distance.

       *   Information Measures of Correlation (MOC)

       *   Maximal Correlation Coefficient (MCC)

   The  computational  region should be set to the input map with g.region
   rast=<input  map>,  or  aligned  to  the  input   map   with   g.region
   align=<input map> if only a subregion should be analyzed.

   Note  that  the  output  of  r.texture  will always be smaller than the
   current region as only cells for which there are no null cells and  for
   which all cells of the moving window are within the current region will
   contain a value. The output will thus appear cropped at the margins.

   Importantly, the input raster map cannot have more than 255 categories.

EXAMPLE

   Calculation of Angular Second Moment of B/W orthophoto (North  Carolina
   data set):
   g.region raster=ortho_2001_t792_1m -p
   # set grey level color table 0% black 100% white
   r.colors ortho_2001_t792_1m color=grey
   # extract grey levels
   r.mapcalc "ortho_2001_t792_1m.greylevel = ortho_2001_t792_1m"
   # texture analysis
   r.texture ortho_2001_t792_1m.greylevel prefix=ortho_texture method=asm -s
   # display
   g.region n=221461 s=221094 w=638279 e=638694
   d.shade color=ortho_texture_ASM_0 shade=ortho_2001_t792_1m
   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.     Reducing   the   number   of   gray   levels
   (equal-probability quantizing):
   g.region -p rast=ortho_2001_t792_1m
   r.quantile in=ortho_2001_t792_1m quantiles=16 -r | r.recode in=ortho_2001_t792_1m out=ortho_2001_t792_1m_q16 rules=-
   The recoded raster map can then be  used  as  input  for  r.texture  as
   before.

   Second  example:  analysis of IDM (homogeneity) on a simple raster with
   North-South line pattern.
   # import raster
   r.in.ascii in=- output=lines << EOF
   north: 9
   south: 0
   east: 9
   west: 0
   rows: 9
   cols: 9
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   0 0 0 1 0 0 0 1 0
   EOF
   # adjust region to raster
   g.region rast=lines
   # calculate IDM (homogeneity) in all directions
   r.texture -s lines method=idm out=text_lines

   The following image shows the original map,  the  result  in  East-West
   direction  and the result in North-South direction, showing how texture
   can depend on direction, with texture perfectly  homogeneous  (value=1)
   in  the  North-South  direction,  but  quite heterogeneous in East-West
   direction, except for those areas where  there  are  three  columns  of
   equal  values  (as  size=3).   The  overlayed  grid highlights that the
   texture measures output maps are cropped at the margins.
   IDM textures according to direction

KNOWN ISSUES

   The program can run incredibly slow for large  raster  maps  and  large
   moving windows (size option).

REFERENCES

   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 of
   pgmtexture.

       *   Haralick, R.M., K. Shanmugam, and I. Dinstein (1973).  Textural
           features   for   image  classification.  IEEE  Transactions  on
           Systems, Man, and Cybernetics, SMC-3(6):610-621.

       *   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.  ISBN 0-13-205840-5

       *   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

SEE ALSO

     i.maxlik,  i.gensig,  i.smap,  i.gensigset,  i.segment.stats,  i.pca,
   r.neighbors, r.rescale

AUTHORS

   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
   Markus Metz (correction and optimization of the initial version)
   Moritz Lennert (documentation)

   Last changed: $Date: 2016-11-27 15:59:49 +0100 (Sun, 27 Nov 2016) $

SOURCE CODE

   Available at: r.texture source code (history)

   Main  index  | Raster index | Topics index | Keywords index | Graphical
   index | Full index

    2003-2016 GRASS Development Team, GRASS GIS 7.2.0 Reference Manual





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.