Get Largest Connected Components

Get n largest connected-components in n-d array, with arbitrary connectivity support
1.5K 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 (2026). Get Largest Connected Components (https://uk.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
Version Published Release Notes
1.1.0.0

Just fixed the description part.

1.0.0.0