gen_region_runsgen_region_runsGenRegionRunsGenRegionRuns (Operator)


gen_region_runsgen_region_runsGenRegionRunsGenRegionRuns — Create a region from a runlength coding.


gen_region_runs( : Region : Row, ColumnBegin, ColumnEnd : )

Herror gen_region_runs(Hobject* Region, const Hlong Row, const Hlong ColumnBegin, const Hlong ColumnEnd)

Herror T_gen_region_runs(Hobject* Region, const Htuple Row, const Htuple ColumnBegin, const Htuple ColumnEnd)

void GenRegionRuns(HObject* Region, const HTuple& Row, const HTuple& ColumnBegin, const HTuple& ColumnEnd)

void HRegion::GenRegionRuns(const HTuple& Row, const HTuple& ColumnBegin, const HTuple& ColumnEnd)

void HRegion::GenRegionRuns(Hlong Row, Hlong ColumnBegin, Hlong ColumnEnd)

static void HOperatorSet.GenRegionRuns(out HObject region, HTuple row, HTuple columnBegin, HTuple columnEnd)

void HRegion.GenRegionRuns(HTuple row, HTuple columnBegin, HTuple columnEnd)

void HRegion.GenRegionRuns(int row, int columnBegin, int columnEnd)


The operator gen_region_runsgen_region_runsGenRegionRunsGenRegionRunsGenRegionRuns 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:



For runtime reasons, it is not checked whether the restriction ColumnEndColumnEndColumnEndColumnEndcolumnEnd >= ColumnBeginColumnBeginColumnBeginColumnBegincolumnBegin is fulfilled. Note that if this restriction is violated, subsequent operations will likely lead to errors or unexpected behavior.

Execution Information


RegionRegionRegionRegionregion (output_object)  region objectHRegionHRegionHobject *

Created region.

RowRowRowRowrow (input_control)  chord.y(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Lines of the runs.

Default value: 100

Suggested values: 0, 50, 100, 200, 300, 500

Typical range of values: Row Row Row Row row (lin)

Minimum increment: 1

Recommended increment: 10

ColumnBeginColumnBeginColumnBeginColumnBegincolumnBegin (input_control)  chord.x1(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Columns of the starting points of the runs.

Number of elements: ColumnBegin == Row

Default value: 50

Suggested values: 0, 50, 100, 200, 300, 500

Typical range of values: ColumnBegin ColumnBegin ColumnBegin ColumnBegin columnBegin (lin)

Minimum increment: 1

Recommended increment: 10

ColumnEndColumnEndColumnEndColumnEndcolumnEnd (input_control)  chord.x2(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Columns of the ending points of the runs.

Number of elements: ColumnEnd == Row

Default value: 200

Suggested values: 50, 100, 200, 300, 500

Typical range of values: ColumnEnd ColumnEnd ColumnEnd ColumnEnd columnEnd (lin)

Minimum increment: 1

Recommended increment: 10

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_runsgen_region_runsGenRegionRunsGenRegionRunsGenRegionRuns returns the value 2 (H_MSG_TRUE), otherwise an exception is raised. The clipping according to the current image format is set via the operator set_system('clip_region',<'true'/'false'>)set_system("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)SetSystem("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'>)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">) determines whether the region is returned or an empty object tuple.

Possible Predecessors



gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPoints, gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygon, gen_region_linegen_region_lineGenRegionLineGenRegionLineGenRegionLine, gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledGenRegionPolygonFilled

See also