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
Copyright: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
http://creativecommons.org/licenses/by-nc-nd/4.0/
If you want to change and share something in the script, e-mail me an
updated version and I may consider it.
引用格式
Herbert (2024). ccfun.m (https://www.mathworks.com/matlabcentral/fileexchange/47004-ccfun-m), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Image Processing and Computer Vision > Image Processing Toolbox > Image Segmentation and Analysis > Region and Image Properties >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.0.0 |