Herror ::transpose_region (
    Hobject Region,
    Hobject *Transposed,
    const HTuple &Row,
    const HTuple &Column
)
HRegion HRegion::TransposeRegion (
    const HTuple &Row,
    const HTuple &Column
) const
HRegionArray HRegionArray::TransposeRegion (
    const HTuple &Row,
    const HTuple &Column
) const

Reflect a region about a point.

::transpose_region reflects a region about a point. The fixed point is given by Column and Row. The image P' of a point P is determined by the following requirement:

If P = S, then P' = S, i.e., the point S is the fixed point of the mapping. If P != S, S is the center point of a line segment connecting P and P'. Therefore, the following equations result:

    x' = 2 * Column - x
    y' = 2 * Row - y.
If Row and Column are set to the origin, the in morphology often used transposition results. Hence ::transpose_region is often used to reflect (transpose) a structuring element.


Parameters

Region (input_object)
region(-array) -> Hobject: HRegion(Array)
Region to be reflected.

Transposed (output_object)
region(-array) -> Hobject * : HRegion(Array)
Transposed region.

Row (input_control)
point.y -> HTuple.long
Row coordinate of the reference point.
Default value: 0
Suggested values: 0, 64, 128, 256, 512
Typical range of values: 0 <= Row <= 511 (lin)
Minimum increment: 1
Recommended increment: 1

Column (input_control)
point.x -> HTuple.long
Column coordinate of the reference point.
Default value: 0
Suggested values: 0, 64, 128, 256, 512
Typical range of values: 0 <= Column <= 511 (lin)
Minimum increment: 1
Recommended increment: 1


Complexity

Let F be the area of the input region. Then the runtime complexity for one region is

      O(sqrt(F)) .


Result

::transpose_region returns H_MSG_TRUE if all parameters are correct. The behavior in case of empty or no input region can be set via:

  a) no region:    set_system('no_object_result',<RegionResult>)
  b) empty region: set_system('empty_region_result',<RegionResult>)
Otherwise, an exception is raised.


Possible Successors

::reduce_domain, ::select_shape, ::area_center, ::connection


See also

::dilation1, ::opening, ::closing


Module

Morphology



Copyright © 1996-2002 MVTec Software GmbH