2014-07-20 29 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坐标做同样的再次就大功告成了。