2016-02-28 42 views
-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; 
     }             

    } 

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

+0

为什么你让你的问题变得更糟? –

+0

我正在修复我的翻译 –

+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; 
} 
+0

我尝试你的代码和作品!...谢谢你... –

+0

@DamarisPeralesOjeda:不要忘记接受这个答案,如果它帮助你, –