partition_lines ( : : RowBeginIn, ColBeginIn, RowEndIn, ColEndIn, Feature, Operation, Min, Max : RowBeginOut, ColBeginOut, RowEndOut, ColEndOut, FailRowBOut, FailColBOut, FailRowEOut, FailColEOut )

Partition lines according to various criteria.

The operator partition_lines divides lines into two sets according to various criteria. For each input line the indicated features (Feature) are calculated. If each (Operation = 'and') or at least one (Operation = 'or') of the calculated features is within the given limits (Min,Max) the line is transferred into the first set (parameters RowBeginOut to ColEndOut), otherwise into the second set (parameters FailRowBOut to FailColEOut).

Condition:   Min_i <= Feature_i(Line) <= Max_i
Possible values for Feature:
  - 'length'       (Euclidean) length of the line
  - 'row'          Line index of the center
  - 'column'       Column index of the center
  - 'phi'          Orientation of the line (-pi/2 < phi <= pi/2)


Attention

If only one feature is used the value of Operation is meaningless. Several features are processed according to the sequence in which they are passed.


Parameters

RowBeginIn (input_control)
line.begin.y-array -> integer
Row coordinates of the starting points of the input lines.

ColBeginIn (input_control)
line.begin.x-array -> integer
Column coordinates of the starting points of the input lines.

RowEndIn (input_control)
line.end.y-array -> integer
Row coordinates of the ending points of the input lines.

ColEndIn (input_control)
line.end.x-array -> integer
Column coordinates of the ending points of the input lines.

Feature (input_control)
string(-array) -> string
Features to be used for selection.
List of values: 'length', 'row', 'column', 'phi'

Operation (input_control)
string -> string
Desired combination of the features.
List of values: 'and', 'or'

Min (input_control)
string(-array) -> string / integer / real
Lower limits of the features or 'min'.
Default value: 'min'

Max (input_control)
string(-array) -> string / integer / real
Upper limits of the features or 'max'.
Default value: 'max'

RowBeginOut (output_control)
line.begin.y-array -> integer
Row coordinates of the starting points of the lines fulfilling the conditions.

ColBeginOut (output_control)
line.begin.x-array -> integer
Column coordinates of the starting points of the lines fulfilling the conditions.

RowEndOut (output_control)
line.end.y-array -> integer
Row coordinates of the ending points of the lines fulfilling the conditions.

ColEndOut (output_control)
line.begin.x-array -> integer
Column coordinates of the ending points of the lines fulfilling the conditions.

FailRowBOut (output_control)
line.begin.y-array -> integer
Row coordinates of the starting points of the lines not fulfilling the conditions.

FailColBOut (output_control)
line.begin.x-array -> integer
Column coordinates of the starting points of the lines not fulfilling the conditions.

FailRowEOut (output_control)
line.end.y-array -> integer
Row coordinates of the ending points of the lines not fulfilling the conditions.

FailColEOut (output_control)
line.end.x-array -> integer
Column coordinates of the ending points of the lines not fulfilling the conditions.


Result

The operator partition_lines returns the value 2 (H_MSG_TRUE) if the parameter values are correct. Otherwise an exception is raised.


Parallelization Information

partition_lines is reentrant and processed without parallelization.


Possible Predecessors

sobel_amp, edges_image, threshold, hysteresis_threshold, split_skeleton_region, split_skeleton_lines


Possible Successors

set_line_width, disp_line


Alternatives

line_orientation, line_position, select_lines, select_lines_longest


See also

select_lines, select_lines_longest, detect_edge_segments, select_shape


Module

Region processing



Copyright © 1996-2005 MVTec Software GmbH