HALCON Reference Manual 10.0.2
Table of Contents / Tools / Geometry ClassesClassesClasses | | | Operators

distance_ccdistance_ccdistance_ccDistanceCcDistanceCc (Operator)

Name

distance_ccdistance_ccdistance_ccDistanceCcDistanceCc — Calculate the distance between two contours.

Signature

distance_cc(Contour1, Contour2 : : Mode : DistanceMin, DistanceMax)

Herror distance_cc(const Hobject Contour1, const Hobject Contour2, const char* Mode, double* DistanceMin, double* DistanceMax)

Herror T_distance_cc(const Hobject Contour1, const Hobject Contour2, const Htuple Mode, Htuple* DistanceMin, Htuple* DistanceMax)

Herror distance_cc(Hobject Contour1, Hobject Contour2, const HTuple& Mode, double* DistanceMin, double* DistanceMax)

Herror distance_cc(Hobject Contour1, Hobject Contour2, const HTuple& Mode, HTuple* DistanceMin, HTuple* DistanceMax)

double HXLDCont::DistanceCc(const HXLDCont& Contour2, const HTuple& Mode, double* DistanceMax) const

HTuple HXLDContArray::DistanceCc(const HXLDContArray& Contour2, const HTuple& Mode, HTuple* DistanceMax) const

void HOperatorSetX.DistanceCc(
[in] IHUntypedObjectX* Contour1, [in] IHUntypedObjectX* Contour2, [in] VARIANT Mode, [out] VARIANT* DistanceMin, [out] VARIANT* DistanceMax)

VARIANT HXLDContX.DistanceCc(
[in] IHXLDContX* Contour2, [in] BSTR Mode, [out] VARIANT* DistanceMax)

static void HOperatorSet.DistanceCc(HObject contour1, HObject contour2, HTuple mode, out HTuple distanceMin, out HTuple distanceMax)

void HXLDCont.DistanceCc(HXLDCont contour2, string mode, out HTuple distanceMin, out HTuple distanceMax)

void HXLDCont.DistanceCc(HXLDCont contour2, string mode, out double distanceMin, out double distanceMax)

Description

The operator distance_ccdistance_ccdistance_ccDistanceCcDistanceCc calculates the minimum and maximum distance between the base points of two contours ( Contour1Contour1Contour1Contour1contour1 and Contour2Contour2Contour2Contour2contour2). The parameters DistanceMinDistanceMinDistanceMinDistanceMindistanceMin and DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax contain the resulting distance.

The parameter ModeModeModeModemode sets the type of computing the distance: 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point" only determines the minimum and maximum distance between the base points of the contours. This results in faster algorithm but may lead to inaccurate minimum distances. In contrast, 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment" determines the actual minimum distance of the contour segments.

In both cases, the search algorithm has a quadratic complexitity (n*n). If only the minimum distance is required, the operator distance_cc_mindistance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin can be used alternatively since it offers algorithms with a complexity of 'n*log(n)'"n*log(n)""n*log(n)""n*log(n)""n*log(n)".

Parallelization

Parameters

Contour1Contour1Contour1Contour1contour1 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContXHobject

First input contour.

Contour2Contour2Contour2Contour2contour2 (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContXHobject

Second input contour.

ModeModeModeModemode (input_control)  string HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Distance calculation mode.

Default value: 'point_to_point' "point_to_point" "point_to_point" "point_to_point" "point_to_point"

List of values: 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point", 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment"

DistanceMinDistanceMinDistanceMinDistanceMindistanceMin (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Minimum distance between both contours.

DistanceMaxDistanceMaxDistanceMaxDistanceMaxdistanceMax (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Maximum distance between both contours.

Example (C)

gen_contour_polygon_rounded_xld(Cont1, [0,100,100,0,0], [0,0,100,100,0],
                                [50,50,50,50,50], 0.5);
gen_contour_polygon_rounded_xld(Cont2, [41,91,91,41,41], [41,41,91,91,41],
                                [25,25,25,25,25], 0.5);
distance_cc(Cont1, Cont2, 'point_to_point', &distance_min, &distance_max);

Result

distance_ccdistance_ccdistance_ccDistanceCcDistanceCc returns 2 (H_MSG_TRUE).

Alternatives

distance_scdistance_scdistance_scDistanceScDistanceSc, distance_pcdistance_pcdistance_pcDistancePcDistancePc, distance_cc_mindistance_cc_mindistance_cc_minDistanceCcMinDistanceCcMin

See also

distance_srdistance_srdistance_srDistanceSrDistanceSr, distance_prdistance_prdistance_prDistancePrDistancePr

Module

Foundation


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