How to perform regionprops to specifically get object's centroid

조회 수: 4 (최근 30일)
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

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by