我正在开发一个关于C ++的项目,我在尝试找到一个对象的质心(坐标x和y)时遇到了问题......
我有250x250像素的图像,这个图像是白色的,带有黑色物体,我需要找到这个黑色物体的质心(这个黑色物体是几何图形)。
我用这个计算所有黑色像素:
if(aregs_in[i] != '1) // '1 means 'fill with 1's'
// do stuff
这样做我得到图像中的所有黑色像素。但我不知道如何找到物体的质心。
答案 0 :(得分: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;
}