Back to Adaptive Vision Library website

You are here: Start » Function Reference » Shape Features » ShapeConvexity

ShapeConvexity


Computes the area of a shape divided by the area of its convex hull.

Syntax

C++
C#
 
void avl::ShapeConvexity
(
	const avl::Path& inShape,
	float& outConvexity
)

Parameters

Name Type Default Description
inShape const Path&
outConvexity float&

Description

Convexity is a measure of how close a shape is to being convex. Convex shapes have convexity equal to 1.0, while the more concave the shape is, the closer to 0.0 is its convexity.

Mathematically, the convexity is calculated as follows:

Note that if the input path is not a valid shape (i.e. it has at least one self-intersection), the computation may lead to results that are not intuitive.

Examples

Area of the sample shape (on the left) equals to 17529.730, while area of its convex hull (on the right) equals to 20176.250, so the convexity of the shape equals to 17529.730/20176.250 = 0.867.

Errors

Error type Description
DomainError Open path on input in ShapeConvexity.
DomainError Degenerate shape on input in ShapeConvexity.

See Also