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

20 views (last 30 days)
Sudev Parthiban on 2 Jul 2019
Commented: Sudev Parthiban on 17 Jul 2019
I have given the marked coordinates and region of interest in which I would like to find the centre of gravity for, please help me.
Jan on 2 Jul 2019
In which format are the input data given?
Sudev Parthiban on 15 Jul 2019
Edited: Jan on 15 Jul 2019
It is an ultrasound image it is in .mat format... This is my code:
clc
clear
close all
figure(1); clf;
subplot(1,2,1);
imshow(paveikslas,[])
paveikslas(1:200,1:200,:) = 0;
figure(1); clf;
subplot(1,2,1);
imshow(paveikslas,[])
hold on
plot(x_poly, y_poly,'r','LineWidth',2)
title('Overlap of ROI on Bscan')
subplot(1,2,2);
plot(x_poly); hold on;
plot(y_poly,'-r');
title('Coordinates of ROI')
figure(2)
plot(x_poly, y_poly,'r','LineWidth',2)
axis equal
title('ROI to be calculated for Center and Axis')

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
Sudev Parthiban on 17 Jul 2019
Thank you it worked for me

Kaustav Bhattacharya on 2 Jul 2019
Sudev Parthiban on 15 Jul 2019
It is in DICOM format.
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:
Loading data directly into the workspace is prone to bugs. Prefer to catch the data in a variable like in my example.