How to perform regionprops to specifically get object's centroid
조회 수: 4 (최근 30일)
이전 댓글 표시
Bachtiar Muhammad Lubis
2019년 1월 27일
댓글: Bachtiar Muhammad Lubis
2019년 1월 31일
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
채택된 답변
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!