2014-07-20 32 views
0

我正在嘗試將blob的質心與以blob的邊界框爲中心的小窗口進行比較。該窗口的尺寸是邊界框尺寸的20%。將Blob的質心與邊界框的中心進行比較

我第一實施該算法,以找到團塊形心

,這是代碼:

For y = 0 To bmp.ScaleHeight - 1 
    For x = 0 To bmp.ScaleWidth - 1 
    If bmp.Point(x, y) = vbWhite 
     Then 
     Xs = Xs + x 
     Ys = Ys + y 
     area = area + 1 
    endIF 
    Next x 
Next y 
YCenteroid = Ys/area 
XCentroid = Xs/area 

然後我發現使用

BlobHeight = MaxY - MinY 
BlobWidth = MaxX - MinX 
寬度和斑點的高度

我現在有邊界框和質心如何比較小中心框內部或外部的質心約20%的邊界框?

回答

1

你有邊框的邊緣:

MinX MaxX 
    |  | 
    ########-MinY 
    #  # 
    #  # 
    #  # 
    ########-MaxY 

鑑於BlobWidth,我們知道集中箱開始於.4*BlobWidth,爲.2*BlobWidth繼續(最多(.4+.2)*BlobWidth = .6*BlobWidth)。

MinCenteredX = MinX + 0.4*BlobWidth 
MaxCenteredX = MinX + 0.6*BlobWidth 

現在,你只需要檢查,如果XCentroid是他們之間,那就是:

MinCenteredX <= XCentroid And XCentroid <= MaxCenteredX 

現在對於Y座標做同樣的再次就大功告成了。