How to calculate the centroid / center of a patch?

18 ビュー (過去 30 日間)
Sim
Sim 2022 年 3 月 1 日
編集済み: Sim 2022 年 3 月 1 日
Hi, how can I calculate the centroid / center of a patch?
Maybe something like this?
[Xc,Yc] = centroid(patch('XData',X,'YData',Y))
  2 件のコメント
jessupj
jessupj 2022 年 3 月 1 日
i have you tried polyshape instead of a patch? you're defining the patch there with x,y data, so you can use those data to define the right object to apply centroid to
Sim
Sim 2022 年 3 月 1 日
Thanks a lot @jessupj ! Indeed, @David Hill showed (I think at the same time with you) this solution :)

サインインしてコメントする。

採用された回答

David Hill
David Hill 2022 年 3 月 1 日
pgon=polyshape(X,Y);
[x,y]=centroid(pgon);

その他の回答 (2 件)

Constantino Carlos Reyes-Aldasoro
Constantino Carlos Reyes-Aldasoro 2022 年 3 月 1 日
The data X,Y must have been previously calculated from some raw data, say a thresholded figure, it is from that data you can easily calculate centroids with regionprops
  1 件のコメント
Sim
Sim 2022 年 3 月 1 日
Thanks a lot @Constantino Carlos Reyes-Aldasoro, very kind!
(however I accepted the @David Hill solution since showing an example of code)

サインインしてコメントする。


Image Analyst
Image Analyst 2022 年 3 月 1 日
Depends on what you have. If you have just arbitrary (x,y) data gotten somehow, like through assignment, then you can create a polyshape with the polyshape() function, and then use centroid(), like @David Hill showed.
If you have a binary image (like @Constantino Carlos Reyes-Aldasoro assumed -- say from thresholding), and want the centroid of each region, you can use regionprops():
props = regionprops(binaryImage, 'Centroid');
xyCentroids = vertcat(props.Centroid)
If you'd like a tutorial on image segmentation that shows that, you can see my Image Segmentation Tutorial:
  1 件のコメント
Sim
Sim 2022 年 3 月 1 日
編集済み: Sim 2022 年 3 月 1 日
Yes, very true, it depends on what you have!
Yes, both replies from @David Hill, @Constantino Carlos Reyes-Aldasoro and @jessupj are very good, and it just depends on what data / scenario you have....
Thanks a lot for the Tutorial! Seems very interesting! I guess this one:

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLighting, Transparency, and Shading についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by