对象特征的定义

斑点分析可提取所检测对象的特征。不提供对象本身的图像。斑点分析算子支持计算最常见的目标特征,这些特征使用几何和统计方法描述对象。相应地,支持

  • 面阵
  • bounding box
  • center of gravity
  • contour length

特征。下文将对每个特征进行全面定义。

面积

图像中的每个对象都可以通过包含在对象中的所有前景像素坐标列表来描述 。 因此,对象或其区域 R 可以描述为

对象的面积是对象的像素数,即区域 R 的大小。

Or in other words: The area of an object is the sum of all its pixels. This feature is often used to distinguish between objects of varying sizes.

边界框

区域 R 的边界框是贴合在对象上的最小平行轴矩形。这是一个简单但非常有用的特征,用于描述对象在图像中的位置。

该特征为每个对象提供四个值,在 VisualApplets 中描述为

此特征对于 'BlobDetector1D' 和 'Blob_Analysis_1D' 算子有所不同,因为无法给出对象的绝对坐标。

重心

重心以 x 和 y 方向计算,是对象所有绝对坐标的总和。每个对象的原点是图像的左上角。

和

重心值未进行归一化。在斑点分析之后,需要将它们除以对象面积。要执行此除法,请使用 arithmetics 库中的 DIV 算子。或者,您也可以在主机 PC 上计算除法。

和

此特征对于 'BlobDetector1D' 和 'Blob_Analysis_1D' 算子有所不同,因为无法给出对象的绝对坐标。

轮廓长度

该特征由对象所有轮廓的长度定义。包括外边缘和内边缘(后者由孔洞引起)。

[注意] 此特征仅适用于旧版算子 Blob_Analysis_1D 和 Blob_Analysis_2D

此特征仅适用于旧版算子 'Blob_Analysis_1D' 和 'Blob_Analysis_2D',不适用于算子 'BlobDetector1D' 和 'BlobDetector2D'。

Contour Length 区分 4 邻域和 8 邻域。如果将斑点分析算子设置为使用 4 邻域检测对象,则轮廓长度仅通过在正交方向上扫描对象的边缘来确定。如果将斑点分析算子设置为 8 邻域,则轮廓长度还会考虑对角连接的对象边缘。因此,根据算子的邻域设置,该特征会提供两个不同的结果。

下面两张图阐明了这种区别。这两张图都显示了包含单个对象的图像。

在上图中,使用 4 邻域检测对象。对于该对象,轮廓长度将位于对象边缘的所有像素相加。仅考虑水平和垂直像素连接。因此,对象的轮廓长度为 30x 正交长度。

在下图中,斑点分析使用 8 邻域。轮廓长度还考虑了对角边缘。对象的轮廓长度为 14x 正交长度 + 8x 对角长度。

结果在轮廓长度上有所不同。

4 邻域:轮廓正交 = 30,对角 = 0

图 418. 4 邻域:轮廓正交 = 30,对角 = 0


8 邻域:轮廓正交 = 14,对角 = 8

图 419. 8 邻域:轮廓正交 = 14,对角 = 8


连接两个相邻对角像素的边缘具有轮廓长度 其代表等腰三角形的斜边。此平方根运算不由斑点分析算子执行。请确保在您的设计中随后执行此操作。总轮廓长度可以通过以下方式获得

轮廓长度的对角线分量对于边缘不与图像边缘平行的物体非常重要。

例如,半径为 5.5 像素的圆的周长为 。下图显示了这个圆。在左侧图中,周长是使用 8 邻域计算的。在右侧图中,周长是使用 4 邻域计算的。该示例表明,使用 8 邻域计算的结果(32.97)接近理论结果(34.56),而使用 4 邻域计算的结果(40)则相当差——它等于具有相同直径的矩形的周长。

使用 8 连通邻域(左)和 4 连通邻域(右)计算周长

图 420:使用 8 邻域(左)和 4 邻域(右)计算周长