File Exchange

version 1.4.0.0 (179 KB) by
Computes the graph of adjacent regions in a labeled image

Updated 01 Aug 2017

Computes region adjacency graph of a labeled 2D or 3D image.
Two regions are considered as neighbor if they are separated by a small number of pixel in the horizontal or vertical direction, as well as depth direction for 3D images.
The result is a N*2 array, containing 2 indices for each couple of neighbor regions.

usage:
ADJ has the format [LBL1 LBL2], LBL1 and LBL2 being vertical arrays the same size.

LBL1 is given in ascending order, LBL2 is given in ascending order for each LBL1. Ex :
[1 2]
[1 3]
[1 4]
[2 3]
[2 5]
[3 4]

Alternative syntax:
Return two arrays: the first one is a [N*2] array containing centroids of the N labeled region, and ADJ is the adjacency previously described.

For 3D images, the node array is [N*3].

The algorithm proceed in scanning each line (horizontal, vertical, and in z-direction for 3D images), and by detection transitions in the labels. A background gap of width 1 pixel/voxel is assumed to exist between regions. It is possible to specify different gaps:

* gap = 0 if regions are contiguous (no background),
* gap = 1, when considering the result of a watershed, for example
* gap > 1 if regions are separated by thick background (some neignborhoods can be missed)

Cite As

David Legland (2020). Region Adjacency Graph (RAG) (https://www.mathworks.com/matlabcentral/fileexchange/16938-region-adjacency-graph-rag), MATLAB Central File Exchange. Retrieved .

le wu

alireza rezvanifar

Stephen

Works well.

Ghazouani

Good tool

Ilya Belevich

Great tool, thank you for sharing!

Gianni Schena

helpfull to compute adjacency relationship between 3D regions segmented via watershed methods.

David Legland

Hi Kerem,
I have submitted an updated version, in which you can control the "gap" between two regions. If you chosse a gap value equal to 2, it should fit your needs (hopefully !).

Kerem Sahin

Any help for the extension to 8-connected neighborhood of this implementation is appreciated.

Chen

Ryan

Very useful.

Joao Henriques

Perrine Paul

Very efficient. Some example of use would be of interest, for accessing data.