Area and center of gravity (centroid) of contours and polygons.
area_center_xld calculates the area and center of gravity (centroid) of the region enclosed by the contours or polygons XLD as well as the order of the points along the boundary. The area and centroid are computed by applying Green's theorem using only the points on the contour or polygon, i.e., no region is generated explicitly for the purpose of calculating the features. If the points are arranged counterclockwise (i.e., in a positive mathematical sense) in the contour, PointOrder will be "positive_xld. It is assumed that the contours or polygons are closed. If this is not the case area_center_xld will artificially close the contour. If more than one contour or polygon is passed the results are stored as tuples in which the index of a value corresponds to the index of the respective contour or polygon in XLD.
|
XLD (input_object) |
xld(-array) -> object |
| Contours or polygons to be examined. | |
|
Area (output_control) |
real(-array) -> real |
| Area enclosed by the contour or polygon. | |
|
Row (output_control) |
point.y(-array) -> real |
| Row coordinate of the centroid. | |
|
Column (output_control) |
point.x(-array) -> real |
| Column coordinate of the centroid. | |
|
PointOrder (output_control) |
string(-array) -> string |
| point order along the boundary ("positive"/"negative"). | |
Let n be the number of points of the contour or polygon. Then the run time is O(n).
area_center_xld returns 2 (H_MSG_TRUE) if the input is not empty. If the input is empty the behaviour can be set via set_system(::'no_object_result',<Result>:). If necessary, an exception is raised.
area_center_xld is reentrant and automatically parallelized (on tuple level).
gen_contours_skeleton_xld, smooth_contours_xld, gen_polygons_xld
moments_xld, moments_any_xld, area_center, moments_region_2nd
Sub-pixel operators