2016-02-28 46 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:不要忘記接受這個答案,如果它幫助你, –