Herror ::gen_parallels_xld (
Hobject Polygons,
Hobject *Parallels,
const HTuple &Len,
const HTuple &Dist,
const HTuple &Alpha,
const HTuple &Merge
)
HXLDParaArray HXLDPolyArray::GenParallelsXld (
const HTuple &Len,
const HTuple &Dist,
const HTuple &Alpha,
const HTuple &Merge
) const
Extract parallel XLD polygons.
::gen_parallels_xld examines the XLD polygons passed in
Polygons for parallelism. The resulting parallel
polygons are returned in Parallels. If the parameter
Merge is set to 'true', adjacent parallel polygons
are returned in a single parallel relation. Otherwise, one parallel
relation is returned for each pair of parallel line segments.
Whether two polygon segments are parallel depends on their distance
(smaller than Dist), a maximum allowed angle difference
(Alpha, in radians), and a minimum length of the two
polygon segments. Furthermore, the two segments have to overlap.
As a side effect, a quality factor is calculated for each pair of
parallels. It is based on the normalized angular difference and the
normalized length of the overlapping area:
PI-delta_alpha 2*overlap
quality = -------------- * --------- with (0 <= quality <= 1)
PI/2 len1+len2
Here, delta_alpha is the angle difference of the
polygon segments, overlap is the length of the overlap area,
len1 and len2 the length of the polygon
segments, and quality the resulting quality factor.
The quality factor is a measure of parallelism (the larger its
value, the ``more parallel'' the polygons). Finally, the quality
factors of all parallel polygon segments contained in a single
polygon are added, weighted with their length of the overlapping
area.
Parameters
Polygons (input_object)
|
xld_poly-array -> Hobject: HXLDPolyArray
|
|
Input polygons. |
Parallels (output_object)
|
xld_para-array -> Hobject * : HXLDParaArray
|
|
Parallel polygons. |
Len (input_control)
|
number -> HTuple.double / long
|
|
Mimimum length of the individual polygon segments. |
|
Default value: 10.0 |
|
Suggested values: 5.0, 10.0, 15.0, 20.0 |
|
Restriction: Len > 0.0 |
Dist (input_control)
|
number -> HTuple.double / long
|
|
Maximum distance between the polygon segments. |
|
Default value: 30.0 |
|
Suggested values: 20.0, 25.0, 30.0, 40.0, 50.0, 75.0 |
|
Restriction: Dist > 0.0 |
Alpha (input_control)
|
number -> HTuple.double / long
|
|
Maximum angle difference of the polygon segments. |
|
Default value: 0.15 |
|
Suggested values: 0.05, 0.10, 0.15, 0.20, 0.30 |
|
Restriction: (0 <= Alpha) && (Alpha <= (pi / 2)) |
Merge (input_control)
|
string -> HTuple.char *
|
|
Should adjacent parallel relations be merged? |
|
Default value: 'true' |
|
List of values: 'true', 'false' |
Possible Predecessors
::gen_polygons_xld
Possible Successors
::mod_parallels_xld,
::get_parallels_xld
Module
Sub-pixel operators
Copyright © 1996-2002 MVTec Software GmbH