Get Largest Connected Components

Get n largest connected-components in n-d array, with arbitrary connectivity support
1.4K Downloads
Updated 19 Nov 2012

View License

The function returns N-D logical array (same size as the input array) with the n largest connected-components indices set.

Inputs:
-------
Xin - input N-D array. Required.

conn - connectivity definition, can be either a scalar or connectivity array, with same number of dimensions as the input array. If empty or omitted , 'conn' will be set to scalar 3^ndims(Xin)-1.

n - Number of returned largest connected-components. If omitted, 'n' will be set to 1. If 'n' is greater than N, the actual number of connected-components in the array, N will be used instead.

Outputs:
--------
Xout - Output N-D array (same size as Xin), with only the n largest connected-components indices set.

rp - vector of length n of structures containing information about the size of the connected-components and their indices, arranged in descending order of size.

Example (2D):
I = rand(100,100) > 0.75;
[J rp] = getLargestCc(I,[],3);

I is a random 2D "image". J is a copy of I with only the 3 largest connected-components set.
Despite the fact that the example is for a very simple 2D image, the code applies to N-D arrays as well.

Comments and questions to: ran.shadmi@gmail.com.

Cite As

Ran Shadmi (2024). Get Largest Connected Components (https://www.mathworks.com/matlabcentral/fileexchange/39094-get-largest-connected-components), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.1.0.0

Just fixed the description part.

1.0.0.0