Extract and sort size of matrix where in the cell
조회 수: 3 (최근 30일)
이전 댓글 표시
clc;clear;close all
im= [0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0];
cc=bwconncomp(im);
for i=1:cc.NumObjects
CC{i}=cc.PixelIdxList{i}
end
Size=zeros(1,cc.NumObjects);
for j=1:cc.NumObjects
Size(:,i)=size(cell2mat(CC(j)))
end
댓글 수: 3
답변 (1개)
Arjun
2025년 1월 8일
I understand that you want to extract the connected componets in the descending order and also find out the components which are greater than a specific threshold size.
You can refer to the following workflow to achieve this:
- Find out the connected components using "bwconncomp"
cc=bwconncomp(im);
- Get the properties of the connected components using "regionprops"
stats = regionprops(cc, 'Area');
- Extract the sizes of the components
sizes = [stats.Area];
- Sort the components by descending order using "sort"
[sortedSizes, sortedIndices] = sort(sizes, 'descend');
- Specify the threshold and filter accordingly
filteredComponents = sortedIndices(sortedSizes > sizeThreshold);
Following are the documentation links of the functions used for your reference:
- bwconncomp: https://www.mathworks.com/help/releases/R2021a/images/ref/bwconncomp.html
- regionprops: https://www.mathworks.com/help/releases/R2021a/images/ref/regionprops.html
- sort: https://www.mathworks.com/help/releases/R2021a/matlab/ref/sort.html
I hope this will help!
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
