You are here: Start » AVL.NET » AVL.SplitRegionIntoComponents(AvlNet.Region, int?, float, float?, int?, int?, int, int?, bool, AvlNet.Region[])

AVL.SplitRegionIntoComponents(AvlNet.Region, int?, float, float?, int?, int?, int, int?, bool, AvlNet.Region[])

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax


public static void SplitRegionIntoComponents(
	AvlNet.Region inRegion,
	int? inMaxDistance,
	float inDistanceBalance,
	float? inMaxJointDiameter,
	int? inMaxJointWidth,
	int? inMaxJointHeight,
	int inMinComponentArea,
	int? inMaxComponentArea,
	bool inRemoveBoundaryBlobs,
	out AvlNet.Region[] outComponents
)

Parameters

inRegion
Type: AvlNet.Region
inMaxDistance
Type: System.Nullable<System.Int32>
inDistanceBalance
Type: System.Single
inMaxJointDiameter
Type: System.Nullable<System.Single>
inMaxJointWidth
Type: System.Nullable<System.Int32>
inMaxJointHeight
Type: System.Nullable<System.Int32>
inMinComponentArea
Type: System.Int32
inMaxComponentArea
Type: System.Nullable<System.Int32>
inRemoveBoundaryBlobs
Type: System.Boolean
outComponents
Type: AvlNet.Region

Description

The filter splits the input region into blobs and iteratively joins some of them into bigger components. Only blobs that are distant from each other by at most inMaxDistance can be joined. The joining order is determined based on modified distance between two blobs, so the closest ones are joined first. This modified distance between two blobs is computed as follows:
  1. The shortest segment connecting two blobs is computed.
  2. The segment is scaled by \[ 0.5 \cdot (1 + inDistanceBalance) \] along the X axis and by \[ 0.5 \cdot (1 - inDistanceBalance) \] along the Y axis.
  3. Finally the length of the so scaled segment is computed.
Every region being a result of such blob joining has to satisfy conditions defined by inMaxJointDiameter, inMaxJointWidth and inMaxJointHeight parameters. Finally, only regions with appropriate area between inMinComponentArea and inMaxComponentArea are parts of the output component table.

Examples

SplitRegionIntoComponents used with inMaxDistance = 50.

Remarks

This filter is mostly used in Blob Analysis Technique please refer to our Machine Vision Guide - Blob Analysis article.

See also