How to calculate the centroid / center of a patch?

7 visualizaciones (últimos 30 días)
Sim
Sim el 1 de Mzo. de 2022
Editada: Sim el 1 de Mzo. de 2022
Hi, how can I calculate the centroid / center of a patch?
Maybe something like this?
[Xc,Yc] = centroid(patch('XData',X,'YData',Y))
  2 comentarios
jessupj
jessupj el 1 de Mzo. de 2022
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 el 1 de Mzo. de 2022
Thanks a lot @jessupj ! Indeed, @David Hill showed (I think at the same time with you) this solution :)

Iniciar sesión para comentar.

Respuesta aceptada

David Hill
David Hill el 1 de Mzo. de 2022
pgon=polyshape(X,Y);
[x,y]=centroid(pgon);

Más respuestas (2)

Constantino Carlos Reyes-Aldasoro
Constantino Carlos Reyes-Aldasoro el 1 de Mzo. de 2022
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 comentario
Sim
Sim el 1 de Mzo. de 2022
Thanks a lot @Constantino Carlos Reyes-Aldasoro, very kind!
(however I accepted the @David Hill solution since showing an example of code)

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 1 de Mzo. de 2022
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 comentario
Sim
Sim el 1 de Mzo. de 2022
Editada: Sim el 1 de Mzo. de 2022
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:

Iniciar sesión para comentar.

Categorías

Más información sobre Microscopy en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by