ClassesClassesClassesClasses | | | | Operators

create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld (Operator)

Name

create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld — Create the XLD distance transform.

Signature

create_distance_transform_xld(Contour : : Mode, MaxDistance : DistanceTransformID)

Herror create_distance_transform_xld(const Hobject Contour, const char* Mode, double MaxDistance, Hlong* DistanceTransformID)

Herror T_create_distance_transform_xld(const Hobject Contour, const Htuple Mode, const Htuple MaxDistance, Htuple* DistanceTransformID)

Herror create_distance_transform_xld(Hobject Contour, const HTuple& Mode, const HTuple& MaxDistance, Hlong* DistanceTransformID)

void CreateDistanceTransformXld(const HObject& Contour, const HTuple& Mode, const HTuple& MaxDistance, HTuple* DistanceTransformID)

void HXLDDistTrans::HXLDDistTrans(const HXLDCont& Contour, const HString& Mode, const HTuple& MaxDistance)

void HXLDDistTrans::HXLDDistTrans(const HXLDCont& Contour, const HString& Mode, double MaxDistance)

void HXLDDistTrans::HXLDDistTrans(const HXLDCont& Contour, const char* Mode, double MaxDistance)

void HXLDDistTrans::CreateDistanceTransformXld(const HXLDCont& Contour, const HString& Mode, const HTuple& MaxDistance)

void HXLDDistTrans::CreateDistanceTransformXld(const HXLDCont& Contour, const HString& Mode, double MaxDistance)

void HXLDDistTrans::CreateDistanceTransformXld(const HXLDCont& Contour, const char* Mode, double MaxDistance)

void HOperatorSetX.CreateDistanceTransformXld(
[in] IHUntypedObjectX* Contour, [in] VARIANT Mode, [in] VARIANT MaxDistance, [out] VARIANT* DistanceTransformID)

void HXLDDistTransX.CreateDistanceTransformXld(
[in] IHXLDContX* Contour, [in] BSTR Mode, [in] VARIANT MaxDistance)

static void HOperatorSet.CreateDistanceTransformXld(HObject contour, HTuple mode, HTuple maxDistance, out HTuple distanceTransformID)

public HXLDDistTrans(HXLDCont contour, string mode, HTuple maxDistance)

public HXLDDistTrans(HXLDCont contour, string mode, double maxDistance)

void HXLDDistTrans.CreateDistanceTransformXld(HXLDCont contour, string mode, HTuple maxDistance)

void HXLDDistTrans.CreateDistanceTransformXld(HXLDCont contour, string mode, double maxDistance)

Description

create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld creates the XLD distance transform of the reference contour ContourContourContourContourContourcontour and returns the resulting handle in DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformID.

Once the XLD distance transform has been created, the operator apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld calculates pointwise distances from test contours to the reference contour ContourContourContourContourContourcontour. More precisely, for each point of a test contour its minimal distance to the contours in ContourContourContourContourContourcontour is calculated.

The parameter ModeModeModeModeModemode determines which distances apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld calculates: 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" calculates the minimum distance to the base points of the ContourContourContourContourContourcontour. In contrast, 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" calculates the minimum distance to the contour segments in ContourContourContourContourContourcontour (see the figure below).

The dashed lines illustrate the calculated distances starting from point 1 of the test contour on the left. The distance corresponds to the 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" mode, whereas the distance corresponds to the 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" mode. The gray area illustrates the area within MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance around the reference contour for which distances are calculated. The distance of point 2 of the test contour would be set to MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance because it is outside of this area.

The parameter MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance specifies a maximum distance from the reference contour ContourContourContourContourContourcontour which is of interest to the caller. If the distance from a point of a test contour to the reference contour exceeds MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance, the output distance of apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld is set to MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance.

The operators create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld and apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld are an alternative to distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld, if the reference contour is repeatedly used. create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld stores for each pixel in a relevant area around ContourContourContourContourContourcontour its nearest points or segments (depending on ModeModeModeModeModemode) of the reference contour ContourContourContourContourContourcontour. This allows apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld to calculate the distances rather fast, nearly independent of the number of points or segments of the reference contour, the ModeModeModeModeModemode and the position of the points of the test contour. However, the preparation of the XLD distance transform can take several seconds or minutes, depending on the number of points or segments of the reference contour and the relevant area around ContourContourContourContourContourcontour which can be influenced by MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance. Furthermore, create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld is faster, if ModeModeModeModeModemode is set to 'point_to_point'.

get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContour and get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParam can be used to get back the reference contours and the parameters of the XLD distance transform DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformID.

Parallelization

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

ContourContourContourContourContourcontour (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Reference contour(s).

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Compute the distance to points ('point_to_point') or entire segments ('point_to_segment').

Default value: 'point_to_point' "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_point", 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment"

MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Maximum distance of interest.

Default value: 20.0

DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformID (output_control)  xld_dist_trans HXLDDistTrans, HTupleHTupleHXLDDistTrans, HTupleHXLDDistTransX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle of the XLD distance transform.

Result

If all parameters are correct, the operator returns the value 2 (H_MSG_TRUE). Otherwise, an exception is raised.

Possible Successors

apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld, write_distance_transform_xldwrite_distance_transform_xldWriteDistanceTransformXldwrite_distance_transform_xldWriteDistanceTransformXldWriteDistanceTransformXld, serialize_distance_transform_xldserialize_distance_transform_xldSerializeDistanceTransformXldserialize_distance_transform_xldSerializeDistanceTransformXldSerializeDistanceTransformXld, clear_distance_transform_xldclear_distance_transform_xldClearDistanceTransformXldclear_distance_transform_xldClearDistanceTransformXldClearDistanceTransformXld

See also

distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld, get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContour, read_distance_transform_xldread_distance_transform_xldReadDistanceTransformXldread_distance_transform_xldReadDistanceTransformXldReadDistanceTransformXld, deserialize_distance_transform_xlddeserialize_distance_transform_xldDeserializeDistanceTransformXlddeserialize_distance_transform_xldDeserializeDistanceTransformXldDeserializeDistanceTransformXld, get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParam, set_distance_transform_xld_paramset_distance_transform_xld_paramSetDistanceTransformXldParamset_distance_transform_xld_paramSetDistanceTransformXldParamSetDistanceTransformXldParam

Module

Foundation


ClassesClassesClassesClasses | | | | Operators