Shape factor for the compactness of a contour.
The operator compactness_xld calculates the compactness of the input contour XLD. The input contour must not intersect itself, otherwise the resulting parameter is not meaningful. If the input contour is not closed it will be closed automatically.
Calculation: If L is the length of the contour and F
the area enclosed by the contour the shape factor Compactness
is defined as:
Compactness = L^2 / (4 F pi))
The shape factor Compactness of a circle is 1.
If the contour encloses an elongated area Compactness is larger
than 1. The operator compactness_xld responds to the course of the
contour (roughness).
If more than one contour is passed the numerical values of the shape
factor are stored in a tuple, the position of a value in the tuple
corresponding to the position of the contour in the input tuple.
|
XLD (input_object) |
xld(-array) -> object |
| Contour(s) to be examined. | |
|
Compactness (output_control) |
real(-array) -> real |
| Compactness of the input contour(s). | |
| Assertion: (Compactness >= 1.0) || (Compactness == 0) | |
The operator compactness_xld returns the value 2 (H_MSG_TRUE) if the input is not empty. The behavior in case of empty input (no input contours available) is set via the operator set_system('no_object_result',<Result>). If necessary an exception is raised.
compactness_xld is reentrant and automatically parallelized (on tuple level).
gen_contours_skeleton_xld, edges_sub_pix, threshold_sub_pix, gen_contour_polygon_xld
circularity_xld, convexity_xld, eccentricity_xld
area_center_xld, select_shape_xld
Sub-pixel operators