【问题标题】:Comparing Blob's centroid with the center of the bounding box将 Blob 的质心与边界框的中心进行比较
【发布时间】:2014-07-21 00:06:36
【问题描述】:

我正在尝试将 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

然后我使用

找到了blob的宽度和高度
BlobHeight = MaxY - MinY 
BlobWidth = MaxX - MinX 

我现在有了边界框和质心如何比较质心在小中心框内部或外部的位置,大约是边界框的 20%?

【问题讨论】:

    标签: image algorithm image-processing vb6


    【解决方案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 坐标再次执行相同的操作,就完成了。

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 2019-03-06
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 2013-11-22
      • 2022-10-18
      • 1970-01-01
      相关资源
      最近更新 更多