# graycoprops

Properties of gray-level co-occurrence matrix

## Description

example

stats = graycoprops(glcm,properties) calculates the statistics specified in properties from the gray-level co-occurrence 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

Create simple sample GLCM.

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

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 = struct with fields:
Contrast: 2.8947
Correlation: 0.0783
Energy: 0.1191
Homogeneity: 0.5658

Read grayscale image into the workspace.

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

glcm = graycomatrix(I,'Offset',[2 0;0 2])
glcm =
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 = struct with fields:
Contrast: [0.3420 0.3567]
Homogeneity: [0.8567 0.8513]

## Input Arguments

collapse all

Gray-level co-occurrence matrix, specified as an array of nonnegative integers or a logical array. Use the graycomatrix function to create a GLCM.

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

Statistical properties of the image derived from GLCM, specified as a comma-separated list string scalars or character vectors, space-separated string scalar or character vector, cell array of string scalars or character vectors, or 'all'. You can specify any of the property names 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.

${\sum _{i,j}|i-j|}^{2}p\left(i,j\right)$

'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.

$\sum _{i,j}\frac{\left(i-\mu i\right)\left(j-\mu j\right)p\left(i,j\right)}{{\sigma }_{i}{\sigma }_{j}}$

'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.

$\sum _{i,j}p{\left(i,j\right)}^{2}$

'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.

$\sum _{i,j}\frac{p\left(i,j\right)}{1+|i-j|}$

Data Types: char | string | cell

## Output Arguments

collapse all

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.