Documentation

graycoprops

Properties of gray-level co-occurrence matrix

Syntax

  • stats = graycoprops(glcm,properties)
    example

Description

example

stats = graycoprops(glcm,properties) calculates the statistics specified in properties from the gray-level co-occurence matrix glcm. glcm is an m-by-n-by-p array of valid gray-level co-occurrence matrices. If glcm is an array of GLCMs, stats is an array of statistics for each glcm.

graycoprops normalizes the gray-level co-occurrence matrix (GLCM) so that the sum of its elements is equal to 1. Each element (r,c) in the normalized GLCM is the joint probability occurrence of pixel pairs with a defined spatial relationship having gray level values r and c in the image. graycoprops uses the normalized GLCM to calculate properties.

Examples

collapse all

Calculate Statistics from Gray-level Co-occurrence Matrix

Create simple sample GLCM.

glcm = [0 1 2 3;1 1 2 3;1 0 2 0;0 0 0 3]
glcm =

     0     1     2     3
     1     1     2     3
     1     0     2     0
     0     0     0     3

Calculate statistical properties of the GLCM.

stats = graycoprops(glcm)
stats = 

       Contrast: 2.8947
    Correlation: 0.0783
         Energy: 0.1191
    Homogeneity: 0.5658

Calculate Contrast and Homogeneity from Multiple GLCMs

Read grayscale image into the workspace.

I = imread('circuit.tif');

Create two gray-level co-occurrence matrices (GLCM) from the image, specifying different offsets.

glcm = graycomatrix(I,'Offset',[2 0;0 2])
glcm(:,:,1) =

  Columns 1 through 6

       14205        2107         126           0           0           0
        2242       14052        3555         400           0           0
         191        3579        7341        1505          37           0
           0         683        1446        7184        1368           0
           0           7         116        1502       10256        1124
           0           0           0           2        1153        1435
           0           0           0           0           0           0
           0           0           0           0           0           0

  Columns 7 through 8

           0           0
           0           0
           0           0
           0           0
           0           0
           0           0
           0           0
           0           0


glcm(:,:,2) =

  Columns 1 through 6

       13938        2615         204           4           0           0
        2406       14062        3311         630          23           0
         145        3184        7371        1650         133           0
           2         371        1621        6905        1706           0
           0           0         116        1477        9974        1173
           0           0           0           1        1161        1417
           0           0           0           0           0           0
           0           0           0           0           0           0

  Columns 7 through 8

           0           0
           0           0
           0           0
           0           0
           0           0
           0           0
           0           0
           0           0

Get statistics on contrast and homogeneity of the image from the GLCMs.

stats = graycoprops(glcm,{'contrast','homogeneity'})
stats = 

       Contrast: [0.3420 0.3567]
    Homogeneity: [0.8567 0.8513]

Input Arguments

collapse all

glcm — Gray-level Co-occurrence Matrixreal, non-negative array of finite logical or numeric integers

Gray-level Co-occurrence Matrix, specified as a real, non-negative array of finite logical or numeric integers. Use the graycomatrix function to create a GLCM.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

properties — Statistical properties of the image derived from GLCM'all' (default) | comma-separated list of strings | cell array of strings | space-separated string

Statistical properties of the image derived from GLCM, specified as a comma-separated list of strings, a cell array containing strings, the string 'all', or a space-separated string. You can specify any of the property name strings listed in this table. Property names can be abbreviated and are not case sensitive.

Property

Description

Formula

'Contrast'

Returns a measure of the intensity contrast between a pixel and its neighbor over the whole image.

Range = [0 (size(GLCM,1)-1)^2] 

Contrast is 0 for a constant image.

The property Contrast is also known as variance and inertia.

'Correlation'

Returns a measure of how correlated a pixel is to its neighbor over the whole image.

Range = [-1 1]

Correlation is 1 or -1 for a perfectly positively or negatively correlated image. Correlation is NaN for a constant image.

'Energy'

Returns the sum of squared elements in the GLCM.

Range = [0 1]

Energy is 1 for a constant image.

The property Energy is also known as uniformity, uniformity of energy, and angular second moment.

'Homogeneity'

Returns a value that measures the closeness of the distribution of elements in the GLCM to the GLCM diagonal.

Range = [0 1]

Homogeneity is 1 for a diagonal GLCM.

Data Types: char | cell

Output Arguments

collapse all

stats — Statistics derived from the GLCMstructure

Statistics derived from the GLCM, returned as a structure with fields that are specified by properties. Each field contains a 1-by-p array, where p is the number of gray-level co-occurrence matrices in GLCM. For example, if GLCM is an 8-by-8-by-3 array and properties is 'Energy', stats is a structure containing the field Energy, which contains a 1-by-3 array.

See Also

Introduced before R2006a

Was this topic helpful?