Detect shapesπŸ”—

Detects shapes by matching a boundary curve to a known geometric shape or a user-defined shape.

This tool requires that the input is an ordered set of points that follows the boundary of an object. Suitable input can be generated for example with boundary detection.


  • vertices: The boundary curve of an unknown polygon as an N-by-2 matrix (N is a varying number of points).

  • shape: The reference shape to match to vertices.

  • aspectRatio: The aspect ratio (width/height) of the reference shape. In the case of an isosceles triangle with two equal sides with length b and the remaining side with length a the aspect ratio is a/b. An aspect ratio of one thus produces an equilateral triangle.

  • modelVertices: The vertices of a custom polygon if shape is Custom. The polygon must have at least three points and must not intersect itself.

  • maxError: The maximum matching error. If matching the input polygon to the reference shape produces a bigger error, no match will be reported. Zero error means a perfect match.

  • preferredAngle: If the model shape is symmetrical about at least one axis, determining a unique coordinate frame is not possible. In such a case, this parameter defines the preferred angle of the output frame’s x axis with respect to the world coordinate system’s x axis.


  • frame: The location and orientation of the upper left corner of a rectangle that encloses the detected shape in world coordinates. A 4-by-4 matrix.

  • size: The size of the rectangle that encloses a detected shape in world coordinates. A 1-by-2 matrix.

  • center: The location (x, y) of the center point of a detected shape in world coordinates. A 1-by-2 matrix.

  • diameter: The longest diameter of a detected shape in world coordinates.

  • matchingError: The mean square matching error between the input boundary and the matched shape.

  • meanDiff: The mean absolute distance between the boundary curve and the ideal matched shape in world coordinates.

  • maxInDiff: The maximum distance from the ideal shape to the boundary curve inwards.

  • maxOutDiff: The maximum distance from the ideal shape to the boundary curve outwards.

  • matchFound: true if the input polygon was successfully matched to the reference shape and false otherwise. This output is useful for example as an input to a gate.

The frame, size, center and diameter parameters are measured from the ideal (model) shape after fitting the model to the boundary. This technique is not sensitive to small deficiencies in the boundary curve. The downside is that cropping the input image based on the calculated frame and size generally loses part of the boundary curve.

enum ShapeπŸ”—

Supported geometric shapes.


enumerator TriangleπŸ”—
enumerator RectangleπŸ”—
enumerator EllipseπŸ”—
enumerator StadiumπŸ”—
enumerator HexagonπŸ”—
enumerator OctagonπŸ”—
enumerator HexagramπŸ”—
enumerator CustomπŸ”—