【matlab】:matlab求图像质心算法

这篇文章的起因是因为我在做一个项目,其中的要求就是求图像的质心,这个算法初步实现了一个功能:
给出一张图片如下:
【matlab】:matlab求图像质心算法_第1张图片

然后把这个图片保存到d:\测试.jpg目录,最后运行我的函数即可

写的思路:
对于图片,质心肯定会数值不一样,这时候可以通过这种想法,然后设定阈值,对于图片数据进行二重循环,最终找到质心那块范围的坐标,最后就能够求出质心

下面附上源代码:(一个名为centroid的matlab函数)

function y = centroid()
I = imread('d:\\测试1.jpg');
[M,N,P] = size(I);
int8 sumx ;
int8 sumy ;
int8 count ;
 sumx = 0;
 sumy = 0;
 count = 0;
 int8 R ;
 int8 G ;
 int8 B ;
 R = 20; G = 200;B = 200;
for i = 1:1:M
    for j = 1:1:N
            if I(i,j,1)>=R &&  I(i,j,2)>=G && I(i,j,3)>=B
                 sumx = sumx + i;
                 sumy = sumy +j;
                 count = count + 1;
            end
    end
end
sumx = sumx / count;    %sumx存储了x轴坐标
sumy = sumy / count;    %sumy存储了y轴坐标
disp(sumx);disp(sumy);

运行效果图:

运行结果已经求出了质心

你可能感兴趣的:(算法,函数,源代码,图片,matlab)