File Exchange

version 1.3 (180 KB) by

Computes the graph of adjacent regions in a labeled image

Updated

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)

Stephen

Works well.

Ghazouani

Good tool

Ilya Belevich

### Ilya Belevich (view profile)

Great tool, thank you for sharing!

G. Sken

### G. Sken (view profile)

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

David Legland

### David Legland (view profile)

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

### Kerem Sahin (view profile)

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

Chen

Ryan

Very useful.

Joao Henriques

### Joao Henriques (view profile)

Perrine Paul

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