How to perform regionprops to specifically get object's centroid
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Bachtiar Muhammad Lubis
le 27 Jan 2019
Commenté : Bachtiar Muhammad Lubis
le 31 Jan 2019
i have a vector row like this :
A = [1;1;1;0;0;0;0;0;1;1;0;0;1;1;1;1;0;0;0;0;1;1;1];
And use regionprops function to retrieve the centroid of 0's values.
props = regionprops(A==0, 'Centroid');
xyCentroids = [props.Centroid];
Now xyCenroids variable has indices of all 0's centroids.
How to retrieve the indices of 0's Centroids that only have length more than 2 ? So that the smallest 0's area (like A(11:12,1)) won't pass the process.
Thanks before
0 commentaires
Réponse acceptée
Image Analyst
le 27 Jan 2019
That's not a row vector. It's a column vector. Anyway, try using bwareafilt():
A = [1;1;1;0;0;0;0;0;1;1;0;0;1;1;1;1;0;0;0;0;1;1;1]
% Extract blobs only of length 3 or longer.
blobs = bwareafilt(A == 0, [3, inf])
% Measure centroids
props = regionprops(blobs, 'Centroid');
xyCentroids = vertcat(props.Centroid)
yCentroids = xyCentroids(:, 2)
You'll get
yCentroids =
6
18.5
2 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!