-2

我正在做一个关于 C++ 的项目,但在尝试找到对象的质心(坐标 x 和 y)时遇到问题......

我有一个 250x250 像素的图像,这个图像是白色的,有一个黑色的物体,我需要找到这个黑色物体的质心(这个黑色物体是一个几何图形)。

我用这个来计算所有黑色像素:

for(i=0; i<high; i++) 
{
    for(j=0; j<width; j++)  
    {
        if(Img->imx[i*width+j]==0)
        {
        c=c+1;
        }                                                   

    }

这样做我会得到图像中的所有黑色像素。但我不知道如何找到物体的质心。

4

1 回答 1

1

如果物体具有均匀的密度,则可以通过计算黑色像素的所有坐标的平均值来计算质心。

int c = 0;
double x = 0, y = 0;
for(i=0; i<high; i++)
{
    for(j=0; j<width; j++)
    {
        if(Img->imx[i*width+j]==0)
        {
             c=c+1;
             x=x+j;
             y=y+i;
        }
    }
}
if(c>0)
{
    x=x/c;
    y=y/c;
}
于 2016-02-28T01:36:47.193 回答