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

Partition lines according to various criteria.

The operator select_lines2 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 (parameter RowBeginOut to ColEndOut), otherwise into the second set (parameter FailRowBOut to FailColEOut).

Condition:   Min_i <= Feature_i(Linie) <= 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 select_lines2 returns the value TRUE if the parameter values are correct. Otherwise an exception is raised.


Possible Predecessors

sobel_amp, edges__, threshold__, hysteresis_threshold__, split_skeleton1, split_skeleton2


Possible Successors

set_line_width, disp_line


Alternatives

line_orientation, line_position, select_lines1, select_longest_lines


See also

select_lines1, select_longest_lines, detect_edges1, select_shape



Copyright © 1996-1997 MVTec Software GmbH