类 SimpleBlobDetector


  • public class SimpleBlobDetector
    extends Feature2D
    用于从图像中提取斑点的类。: 该类实现了一个简单的算法,用于从图像中提取斑点:1. 通过应用具有多个阈值的阈值处理,将源图像转换为二值图像,阈值范围从 minThreshold(包含)到 maxThreshold(不包含),相邻阈值之间的距离为 thresholdStep。2. 通过 findContours 从每个二值图像中提取连接组件,并计算它们的中心。3. 按坐标对来自多个二值图像的中心进行分组。接近的中心形成一组,对应于一个斑点,该斑点由 minDistBetweenBlobs 参数控制。4. 从组中,估计斑点的最终中心及其半径,并作为关键点的位置和大小返回。此类执行对返回斑点的多个过滤。您应该将 filterBy\* 设置为 true/false 以打开/关闭相应的过滤。可用过滤
    • 按颜色。此过滤器将斑点中心的二值图像的强度与 blobColor 进行比较。如果它们不同,则过滤掉该斑点。使用 blobColor = 0 提取深色斑点,使用 blobColor = 255 提取浅色斑点。
    • 按面积。提取的斑点具有介于 minArea(包含)和 maxArea(不包含)之间的面积。
    • 按圆度。提取的斑点具有介于 minCircularity(包含)和 maxCircularity(不包含)之间的圆度(\(\frac{4*\pi*Area}{perimeter * perimeter}\))。
    • 按最小惯性与最大惯性的比率。提取的斑点具有介于 minInertiaRatio(包含)和 maxInertiaRatio(不包含)之间的比率。
    • 按凸度。提取的斑点具有介于 minConvexity(包含)和 maxConvexity(不包含)之间的凸度(面积 / 斑点凸包面积)。
    参数的默认值经过调整以提取深色圆形斑点。