Herror ::find_neighbors (
    Hobject Regions1,
    Hobject Regions2,
    const HTuple &MaxDistance,
    HTuple *RegionIndex1,
    HTuple *RegionIndex2
)
HTuple HRegion::FindNeighbors (
    const HRegionArray &Regions2,
    const HTuple &MaxDistance,
    HTuple *RegionIndex2
) const
HTuple HRegionArray::FindNeighbors (
    const HRegionArray &Regions2,
    const HTuple &MaxDistance,
    HTuple *RegionIndex2
) const

Search direct neighbors.

The operator ::find_neighbors determines neighboring regions with Regions1 and Regions2 containing the regions to be examined. Regions1 can have three different states:

- Regions1 is empty:
    In this case all regions in Regions2
    are permutatively checked for neighborhood.
- Regions1 consists of one region:
    The regions of Regions1 are compared to all regions 
    in Regions2.
- Regions1 consists of the same number of regions as
  Regions2:
    In this case all regions in the n-th position in
    Regions1 and Regions2 are checked
    for a neighboring relation.
The operator ::find_neighbors uses the city block distance between neighboring regions. It can be specified by the parameter MaxDistance. neighboring regions are located at the n-th position in RegionIndex1 and RegionIndex2, i.e. the region with index RegionIndex1[n] from Regions1 is the neighbor of the region with index RegionIndex2[n] from Regions2.


Attention

Covered regions are not found!


Parameters

Regions1 (input_object)
region(-array) -> Hobject: HRegion(Array)
Starting regions.

Regions2 (input_object)
region(-array) -> Hobject: HRegion(Array)
Comparative regions.

MaxDistance (input_control)
integer -> HTuple.long
Maximal distance of regions.
Default value: 1
Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 10, 15, 20, 50
Typical range of values: 1 <= MaxDistance <= 255
Minimum increment: 1
Recommended increment: 1

RegionIndex1 (output_control)
integer-array -> HTuple.long *
Indices of the found regions from Regions1.

RegionIndex2 (output_control)
integer-array -> HTuple.long *
Indices of the found regions from Regions2.


Result

The operator ::find_neighbors returns the value H_MSG_TRUE if the input is not empty. The behavior in case of empty input (no input regions available) is set via the operator ::set_system('no_object_result',<Result>). The behavior in case of empty region (the region is the empty set) is set via ::set_system('empty_region_result',<Result>). If necessary an exception handling is raised.


Possible Predecessors

::threshold, ::regiongrowing, ::connection


See also

::spatial_relation, ::select_region_spatial, ::expand_region, ::interjacent, ::boundary


Module

Region processing



Copyright © 1996-2002 MVTec Software GmbH