Maximal distance between two boundary points of a region.
The operator ::diameter_region calculates the maximal distance between two boundary points of a region. The coordinates of these two extremes and the distance between them will be returned.
If the region is empty, the results of Row1, Column1, Row2 and Column2 (all of them = 0) may lead to confusion.
|
Regions (input_object) |
region(-array) -> Hobject: HRegion(Array) |
| Regions to be examined. | |
|
Row1 (output_control) |
line.begin.y(-array) -> (HTuple.) long * |
| Row index of the first extreme point. | |
|
Column1 (output_control) |
line.begin.x(-array) -> (HTuple.) long * |
| Column index of the first extreme point. | |
|
Row2 (output_control) |
line.end.y(-array) -> (HTuple.) long * |
| Row index of the second extreme point. | |
|
Column2 (output_control) |
line.end.x(-array) -> (HTuple.) long * |
| Column index of the second extreme point. | |
|
Diameter (output_control) |
number(-array) -> (HTuple.) double * |
| Distance of the two extreme points. | |
If F is the area of a region, the runtime complexity amounts to O(F) on average.
The operator ::diameter_region returns the value H_MSG_TRUE, if the input is not empty. The reaction to empty input (no input regions are available) may be determined with the help of the operator ::set_system('no_object_result',<Result>). The reaction concerning an empty region (region is the empty set) will be determined by the operator ::set_system('empty_region_result',<Result>). If necessary an exception handling is raised.
::threshold, ::regiongrowing, ::connection, ::runlength_features
Region processing