HALCON Reference Manual 10.0.2
Table of Contents / Regions / Sets ClassesClassesClasses | | | Operators

differencedifferencedifferenceDifferenceDifference (Operator)

Name

differencedifferencedifferenceDifferenceDifference — Calculate the difference of two regions.

Signature

difference(Region, Sub : RegionDifference : : )

Herror difference(const Hobject Region, const Hobject Sub, Hobject* RegionDifference)

Herror T_difference(const Hobject Region, const Hobject Sub, Hobject* RegionDifference)

Herror difference(Hobject Region, Hobject Sub, Hobject* RegionDifference)

HRegion HRegion::Difference(const HRegion& Sub) const

HRegionArray HRegionArray::Difference(const HRegionArray& Sub) const

void HOperatorSetX.Difference(
[in] IHUntypedObjectX* Region, [in] IHUntypedObjectX* Sub, [out] IHUntypedObjectX*RegionDifference)

IHRegionX* HRegionX.Difference([in] IHRegionX* Sub)

static void HOperatorSet.Difference(HObject region, HObject sub, out HObject regionDifference)

HRegion HRegion.Difference(HRegion sub)

Description

differencedifferencedifferenceDifferenceDifference calculates the set-theoretic difference of two regions:

   (Regions in Region) - (Regions in Sub)

The resulting region is defined as the input region (RegionRegionRegionRegionregion) with all points from SubSubSubSubsub removed. Note that, internally, all regions of SubSubSubSubsub are united to a single region before the differences between the individual regions of RegionRegionRegionRegionregion and the united region are calculated.

Attention

Empty regions are valid for both parameters. On output, empty regions may result. The value of the system flag 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region" determines the behavior in this case.

Parallelization

Parameters

RegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionXHobject

Regions to be processed.

SubSubSubSubsub (input_object)  region(-array) objectHRegionHRegionHRegionXHobject

The union of these regions is subtracted from Region.

RegionDifferenceRegionDifferenceRegionDifferenceRegionDifferenceregionDifference (output_object)  region(-array) objectHRegionHRegionHRegionXHobject *

Resulting region.

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (C)

/* provides the region X without the points in Y */
difference(X,Y,&RegionDifference);

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Complexity

Let N be the number of regions, F_1 be their average area, and F_2 be the total area of all regions in SubSubSubSubsub. Then the runtime complexity is O(F_1 * log(F_1) + N * (sqrt(F_1) + sqrt(F_2))).

Result

differencedifferencedifferenceDifferenceDifference always returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no regions given) can be set via set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) and the behavior in case of an empty input region via set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

thresholdthresholdthresholdThresholdThreshold, connectionconnectionconnectionConnectionConnection, regiongrowingregiongrowingregiongrowingRegiongrowingRegiongrowing, pouringpouringpouringPouringPouring, class_ndim_normclass_ndim_normclass_ndim_normClassNdimNormClassNdimNorm

Possible Successors

select_shapeselect_shapeselect_shapeSelectShapeSelectShape, disp_regiondisp_regiondisp_regionDispRegionDispRegion

See also

intersectionintersectionintersectionIntersectionIntersection, union1union1union1Union1Union1, union2union2union2Union2Union2, complementcomplementcomplementComplementComplement, symm_differencesymm_differencesymm_differenceSymmDifferenceSymmDifference

Module

Foundation


Table of Contents / Regions / Sets ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH