# How do I find the centre of gravity for an irregular shape?

26 views (last 30 days)

Show older comments

Sudev Parthiban
on 2 Jul 2019

Commented: Sudev Parthiban
on 17 Jul 2019

##### 2 Comments

### Accepted Answer

Bruno Luong
on 15 Jul 2019

You can get the coordinates of the centroid if you have a boundary coordinates of a polygonal region:

[xc,yc] = polygoncentroid(x_poly,y_poly)

using this function

function [xc,yc] = polygoncentroid(x,y)

xn = circshift(x,-1);

yn = circshift(y,-1);

A = x.*yn-xn.*y;

a = 3*sum(A);

xc = sum((x+xn).*A)/a;

yc = sum((y+yn).*A)/a;

end

### More Answers (1)

Kaustav Bhattacharya
on 2 Jul 2019

##### 4 Comments

Jan
on 15 Jul 2019

Edited: Jan
on 15 Jul 2019

The DICOM format is a file format. You have loaded the data from a MAT file. Therefore I think, that "DICOM format" is neither possible, nor does it explain, how the data are represented. All we know currently is that your data are not a binary image. Please provide any explicit details about the input. It would be inefficient if the readers guess, which data you have.

What do you exactly get for:

data = load('ROI1.mat')

Loading data directly into the workspace is prone to bugs. Prefer to catch the data in a variable like in my example.

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!