Leaper Vision Toolkit
Data Structures | Enumerations
LPVBlobLib Module Reference

LPV Blob Library, provides functionality for blob analysis. More...

Data Structures

interface  ILBlob
 This interface holds single blob and provide functionalities of blob calculation, conversion and drawing. More...
 
interface  ILBlobAnalysis
 This interface provide functionalities of blob analysis. More...
 
interface  ILBlobFilter
 This interface provide functionalities of blob filtering. More...
 
interface  ILBlobResults
 This interface holds a collection of blob results. More...
 
class  LBlob
 
class  LBlobAnalysis
 
class  LBlobFilter
 
class  LBlobResults
 

Enumerations

enum  LPVBlobContourType { LPVBlobContourExternal = 0 , LPVBlobContourHole = 1 }
 This enumeration represents the type of the blob contour. More...
 
enum  LPVBlobDrawFlags {
  LPVBlobDrawContour = 1 , LPVBlobDrawHole = 2 , LPVBlobDrawCenter = 4 , LPVBlobDrawBoundingRect = 8 ,
  LPVBlobDrawRegion = 16 , LPVBlobDrawIndex = 32 , LPVBlobDrawDefault = LPVBlobDrawContour + LPVBlobDrawCenter , LPVBlobDrawAll = 0xff
}
 This enumeration represents the flags to control the blob drawing behavior. More...
 
enum  LPVBlobFeatures {
  LPVBlobArea = 0 , LPVBlobPerimeter = 1 , LPVBlobWidth = 2 , LPVBlobHeight = 3 ,
  LPVBlobCircularity = 4 , LPVBlobConvexity = 5 , LPVBlobInertia = 6 , LPVBlobAspectRatio = 7 ,
  LPVBlobSharpness = 8 , LPVBlobLuminance = 9 , LPVBlobContrast = 10 , LPVBlobCenterX = 11 ,
  LPVBlobCenterY = 12 , LPVBlobColorV0 = 13 , LPVBlobColorV1 = 14 , LPVBlobColorV2 = 15
}
 This enumeration represents the numeric features of the blob. More...
 
enum  LPVBlobMergeType {
  LPVBlobMergeFromCenter = 0 , LPVBlobMergeFromLargest = 1 , LPVBlobMergeFromSmallest = 2 , LPVBlobMergeFromBrightest = 3 ,
  LPVBlobMergeFromDarkest = 4
}
 This enumeration represents the way to do blob merging, especially the way to decide the start point for merging. More...
 

Detailed Description

LPV Blob Library, provides functionality for blob analysis.

This library provides functionality for blob analysis. To include the definitions of the library's classes, use the following directive:

Example Code

Enumeration Type Documentation

◆ LPVBlobContourType

This enumeration represents the type of the blob contour.

Enumerator
LPVBlobContourExternal 

Use the external contours as the blob's contours, then the hole contours is the blob's holes.

LPVBlobContourHole 

Use the hole contours as the blob's contours, then the external contours is the blob's holes.

◆ LPVBlobDrawFlags

This enumeration represents the flags to control the blob drawing behavior.

Enumerator
LPVBlobDrawContour 

Draw the contours

LPVBlobDrawHole 

Draw the holes

LPVBlobDrawCenter 

Draw the center of the blob

LPVBlobDrawBoundingRect 

Draw the rotated bounding rect of the blob

LPVBlobDrawRegion 

Draw all the pixels inside the blob as a mask

LPVBlobDrawIndex 

Draw the index of the blob right to its center

LPVBlobDrawDefault 

Default draw flags, which draws the contour and the center

LPVBlobDrawAll 

Draw a blob with all components

◆ LPVBlobFeatures

This enumeration represents the numeric features of the blob.

Enumerator
LPVBlobArea 

Area of the blob, it's the total count of pixels inside the blob.

LPVBlobPerimeter 

Length of the blob's external contour.

LPVBlobWidth 

Length of the blob's rotated bounding rectangle's longer axis.

LPVBlobHeight 

Length of the blob's rotated bounding rectangle's shorter axis.

LPVBlobCircularity 

Shape factor for the circularity (similarity to a circle) of the blob, defined as:

\[ \frac{4 \pi A }{ P^2 } \]

where \( A \) is the blob's area, \( P \) is the blob's perimeter. The value is in range of (0, 1), for a perfect circle, it's 1.

LPVBlobConvexity 

Shape factor for the convexity of he blob, defined as:

\[ \frac{ A }{ A_{conv} } \]

where \( A \) is the blob's area, \( A_{conv} \) is the area of the blob' bounding convex hull. The value is in range of (0, 1), for a convex polygon, it's 1.

LPVBlobInertia 

Moment of inertia of the blob contour.

LPVBlobAspectRatio 

Aspect ratio of the blob's rotated bounding rectangle, in range of (0, 1). It's 1 for a square.

LPVBlobSharpness 

Sharpness calculated using all the pixels inside the blob.

LPVBlobLuminance 

Average luminance calculated using all the pixels inside the blob.

LPVBlobContrast 

Average contrast calculated using all the pixels inside the blob.

LPVBlobCenterX 

The x-coordinate of the blob center

LPVBlobCenterY 

The y-coordinate of the blob center

LPVBlobColorV0 

Average 0-channel value calculated using all the pixels inside the blob.

LPVBlobColorV1 

Average 1-channel value calculated using all the pixels inside the blob.

LPVBlobColorV2 

Average 2-channel value calculated using all the pixels inside the blob.

◆ LPVBlobMergeType

This enumeration represents the way to do blob merging, especially the way to decide the start point for merging.

Enumerator
LPVBlobMergeFromCenter 

Starts from the center of the region

LPVBlobMergeFromLargest 

Starts from the largest blob

LPVBlobMergeFromSmallest 

Starts from the smallest blob

LPVBlobMergeFromBrightest 

Starts from the brightest blob, whose average luminance is the biggest

LPVBlobMergeFromDarkest 

Starts from the darkest blob, whose average luminance is the smallest