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

19 ビュー (過去 30 日間)
Sudev Parthiban
Sudev Parthiban 2019 年 7 月 2 日
コメント済み: Sudev Parthiban 2019 年 7 月 17 日
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.
  2 件のコメント
Jan
Jan 2019 年 7 月 2 日
In which format are the input data given?
Sudev Parthiban
Sudev Parthiban 2019 年 7 月 15 日
編集済み: Jan 2019 年 7 月 15 日
It is an ultrasound image it is in .mat format... This is my code:
clc
clear
close all
cd('C:\Users\ADMIN\Desktop\Sudev\Objective 1')
load('ROI1.mat'); %Load data from file
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
Bruno Luong 2019 年 7 月 15 日
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

その他の回答 (1 件)

Kaustav Bhattacharya
Kaustav Bhattacharya 2019 年 7 月 2 日
  4 件のコメント
Sudev Parthiban
Sudev Parthiban 2019 年 7 月 15 日
It is in DICOM format.
Jan
Jan 2019 年 7 月 15 日
編集済み: Jan 2019 年 7 月 15 日
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.

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

カテゴリ

Help Center および File ExchangeBiomedical Imaging についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by