[x,y]=centroid(img);
img如下所示
function [x,y]=centroid(I)
level=graythresh(I); %%求二值化的阈值
[~,~]=size(I);
bw=imbinarize(I,level); %%二值化图像
[L,~]=bwlabel(bw,8); %%标注二进制图像中已连接的部分
x=zeros(1,1); %%用于记录质心位置的坐标
y=zeros(1,1);
%%求质心
sum_x=0;sum_y=0;area=0;
[height,width]=size(bw);
for i=1:height
for j=1:width
if L(i,j)==1
sum_x=sum_x+i;
sum_y=sum_y+j;
area=area+1;
end
end
end
%%质心坐标
x=fix(sum_x/area);
y=fix(sum_y/area);