Create an image region from a runlength coding.
The operator gen_region_runs creates a region described by the input runlength structure. The runlength representation is created by examining a region line by line with ascending line number (= from ``top'' to ``bottom''). Every line runs through from left to right (ascending column number). All starting and ending points being stored by region segments (=runs). Thus a region can be described by a sequence of runs, a run being defined by line number as well as starting and ending points (column number).
The storing is fastest when the runs are sorted. The order is as follows:
(l1,b1,e1) <= (l2,b2,e2) := l1 < l2 or l1 = l2 and b1 <= b2
.
|
Region (output_object) |
region -> object |
| Created region. | |
|
Row (input_control) |
chord.y(-array) -> integer |
| Lines of the runs. | |
| Default value: 100 | |
| Suggested values: 0, 50, 100, 200, 300, 500 | |
| Typical range of values: -oo <= Row <= -oo (lin) | |
| Minimum increment: 1 | |
|
Recommended increment: 10 | |
|
ColumnBegin (input_control) |
chord.x1(-array) -> integer |
| Columns of the starting points of the runs. | |
| Default value: 50 | |
| Suggested values: 0, 50, 100, 200, 300, 500 | |
| Typical range of values: -oo <= ColumnBegin <= -oo (lin) | |
| Minimum increment: 1 | |
|
Recommended increment: 10 | |
| Number of elements: ColumnBegin == Row | |
|
ColumnEnd (input_control) |
chord.x2(-array) -> integer |
| Columns of the ending points of the runs. | |
| Default value: 200 | |
| Suggested values: 50, 100, 200, 300, 500 | |
| Typical range of values: -oo <= ColumnEnd <= -oo (lin) | |
| Minimum increment: 1 | |
|
Recommended increment: 10 | |
| Number of elements: ColumnEnd == Row | |
| Restriction: ColumnEnd >= ColumnBegin | |
F shall be the number of pixels. If the pixels are sorted in ascending order the runtime complexity is: O(F), otherwise it is O(log(F)*F).
If the data is correct the operator gen_region_runs returns the value 2 (H_MSG_TRUE), otherwise an exception handling is raised. The clipping according to the current image format is set via the operator set_system('clip_region',<'true'/'false'>). If an empty region is created (by the clipping or by an empty input) the operator set_system('store_empty_region',<true/false>) determines whether the region is returned or an empty object tuple.
gen_region_runs is reentrant, local, and processed without parallelization.
gen_region_points, gen_region_polygon, gen_region_line, gen_region_polygon_filled
Foundation