How to perform regionprops to specifically get object's centroid

20 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Image Analyst
Image Analyst el 27 de En. de 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 comentarios
Bachtiar Muhammad Lubis
Bachtiar Muhammad Lubis el 31 de En. de 2019
@ Image Analyst : Thank you so much sir. Always
Bachtiar Muhammad Lubis
Bachtiar Muhammad Lubis el 31 de En. de 2019
@ Image Analyst : sorry sir i was mistake, yes it's collumn vector.

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by