# graycoprops

Properties of gray-level co-occurrence matrix

## Syntax

``stats = graycoprops(glcm,properties)``

## Description

example

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

`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 = 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 one of the following. You can use the `graycomatrix` function to create a GLCM.

• An m-by-n matrix of nonnegative integers for a single gray-level co-occurrence matrix

• An m-by-n-by-p array of nonnegative integers for p valid gray-level co-occurrence matrices.

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

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'`, then `stats` is a structure containing the field `Energy`, which contains a 1-by-3 array.