# Detect boundariesπ

Detects boundaries of connected objects in images and outputs them as a matrix that contains the coordinates of vertices that form a polygon. The resulting vertices can be used for example in shape detection. In many cases, it is useful to reduce the number of vertices with polyline simplification before further processing.

## Inputsπ

`image`

: Input image. This is usually a binary image or a labeled image. To avoid a separate thresholding step one can set the`threshold`

parameter to a non-zero value.`threshold`

: A static threshold for binarizing a gray-level input image. Every pixel in the image whose gray level is higher than`threshold`

is regarded as a part of an object. The default value is zero, which assumes a pre-binarized or labeled input image. Setting this value to a non-zero value may be useful in avoiding a separate thresholding step.`invert`

: Inverts automatic thresholding result if set to`true`

.`minLength`

: The minimum length of a boundary in world coordinates. If a detected boundary is shorter, it will be discarded. Note that this is a quite rough estimate. The tool calculates the length of a detect boundary quickly based on the number of boundary pixels and camera geometry. It doesnβt traverse the boundary and match it to image features to get a really good length estimate.`maxLength`

: The maximum length of a boundary in world coordinates. If a detected boundary is longer, it will be discarded. See notes about accuracy above.`maxBoundaries`

: The maximum total number of boundary polygons. This parameter together with*maxVertices*poses an upper limit for the amount of memory the tool may allocate while traversing the boundaries.`maxVertices`

: The maximum total number of vertices.

## Outputsπ

`vertices`

: The coordinates of the vertices of found boundary polygons. Each polygon is stored as a M-by-2 block (M varies depending on the length of the boundary) in the matrix, and each row stores the (x, y) coordinates of a boundary point in the order the algorithm traversed the boundary. The coordinates are in the world coordinate system.`blockSize`

: The number of vertices in each polygon. This matrix has as many rows as there are separate boundaries. Each row has one element: the number of vertices in the polygon.`image`

: Boundary mask image. A gray-level image in which the detected edges are marked according to their type. Background is zero, right and bottom edges one, left and top edges two and double edges three.