# ccfun.m

Version 1.0.0.0 (1.64 KB) by
Apply a function to connected components in one or more images
Updated 19 Jun 2014

ccfun Apply a function to connected components in one or more images

S = ccfun(fun, cc, I) applies fun to each connected component in cc and
I. I is a MxNxC matrix, typically C=1 or C=3 for RGB, and cc is a cell
where each element defines the indices of one connected component. That
is:

S(i) = fun(I(cc_x(i), cc_y(i), :))
where [cc_x(i), cc_y(i)] = ind2sub(size(I), cc{i});

S = ccfun(fun, cc, I1, ..., In) Similar, but now

S(i) = fun(I1(cc_x(i), cc_y(i), :), ..., In(cc_x(i), cc_y(i), :))

For efficiency this function uses no for-loops.

The application of the function is done using cellfun and cell2mat, fun
must return a uniform output.

Example:
I = rand(100, 100); % Some image
cc = {randi(100*100, 20, 1)}; % A conneted component with 20 pixels,
% probably not really connected ;)
cellfun(@(x) sum(x), cc, I)

ans =

13.0654

sum(I(cc{1}))

ans =

13.0654

Author: Herbert Kruitbosch

If you want to change and share something in the script, e-mail me an
updated version and I may consider it.

### Cite As

Herbert (2024). ccfun.m (https://www.mathworks.com/matlabcentral/fileexchange/47004-ccfun-m), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2013b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux
##### Categories
Find more on Region and Image Properties in Help Center and MATLAB Answers