Herror ::gen_region_runs (
    Hobject *Region,
    const HTuple &Row,
    const HTuple &ColumnBegin,
    const HTuple &ColumnEnd
)
HRegion HRegion::GenRegionRuns (
    const HTuple &Row,
    const HTuple &ColumnBegin,
    const HTuple &ColumnEnd
)

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 oder l1 = l2 und b1 <= b2
.


Attention

All pixels must be located within the image format. If no runs are passed an empty region is created.


Parameters

Region (output_object)
region -> Hobject * : HRegion
Created region.

Row (input_control)
chord.y(-array) -> HTuple.long
Lines of the runs.
Default value: 100
Suggested values: 0, 50, 100, 200, 300, 500
Typical range of values: 0 <= Row <= 511 (lin)
Minimum increment: 1
Recommended increment: 10

ColumnBegin (input_control)
chord.x1(-array) -> HTuple.long
Columns of the starting points of the runs.
Default value: 50
Suggested values: 0, 50, 100, 200, 300, 500
Typical range of values: 0 <= ColumnBegin <= 511 (lin)
Minimum increment: 1
Recommended increment: 10
Number of elements: ColumnBegin == Row

ColumnEnd (input_control)
chord.x2(-array) -> HTuple.long
Columns of the ending points of the runs.
Default value: 200
Suggested values: 50, 100, 200, 300, 500
Typical range of values: 0 <= ColumnEnd <= 511 (lin)
Minimum increment: 1
Recommended increment: 10
Number of elements: ColumnEnd == Row
Restriction: ColumnEnd >= ColumnBegin


Complexity

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(F)*F).


Result

If the data is correct the operator ::gen_region_runs returns the value 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 (= empty input) the operator ::set_system('store_gen_empty_region',<true/false>) determines whether the region is returned.


Possible Predecessors

::get_region_runs


Alternatives

::gen_region_points, ::gen_region_polygon, ::gen_region_line, ::gen_region_polygon_filled


See also

::reduce_domain


Module

Region processing



Copyright © 1996-2002 MVTec Software GmbH