create_distance_transform_xldT_create_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld (Operator)
create_distance_transform_xldT_create_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld
— Create the XLD distance transform.
Signature
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::HXLDDistTrans(const HXLDCont& Contour, const wchar_t* Mode, double MaxDistance)
(
Windows only)
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 HXLDDistTrans::CreateDistanceTransformXld(const HXLDCont& Contour, const wchar_t* Mode, double MaxDistance)
(
Windows only)
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_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld
creates the XLD distance transform
of the reference contour ContourContourContourcontourcontour
and returns the resulting handle
in DistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id
.
Once the XLD distance transform has been created, the operator
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
calculates pointwise distances
from test contours to the reference contour ContourContourContourcontourcontour
. More
precisely, for each point of a test contour its minimal distance to the
contours in ContourContourContourcontourcontour
is calculated.
The parameter ModeModeModemodemode
determines which distances
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
calculates:
'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 ContourContourContourcontourcontour
.
In contrast, 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment" calculates the minimum
distance to the contour segments in ContourContourContourcontourcontour
(see the figure
below).
The parameter MaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance
specifies a maximum distance from the
reference contour ContourContourContourcontourcontour
which is of interest to the caller.
If the distance from a point of a test contour to the reference contour
exceeds MaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance
, the output distance of
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
is set to MaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance
.
The operators create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld
and
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
are an alternative to
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXlddistance_contours_xld
, if the reference contour is repeatedly used.
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld
stores for each pixel in a relevant
area around ContourContourContourcontourcontour
its nearest points or segments (depending on
ModeModeModemodemode
) of the reference contour ContourContourContourcontourcontour
. This allows
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
to calculate the distances rather fast,
nearly independent of the number of points or segments of the reference
contour, the ModeModeModemodemode
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 ContourContourContourcontourcontour
which can
be influenced by MaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance
. Furthermore,
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld
is faster, if ModeModeModemodemode
is set to
'point_to_point'.
get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContourget_distance_transform_xld_contour
and
get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParamget_distance_transform_xld_param
can be used to get back the
reference contours and the parameters of the XLD distance
transform DistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id
.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without 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
ContourContourContourcontourcontour
(input_object) xld_cont(-array) →
objectHXLDContHObjectHObjectHobject
Reference contour(s).
ModeModeModemodemode
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Compute the distance to points ('point_to_point')
or entire segments ('point_to_segment').
Default:
'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"
MaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance
(input_control) real →
HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Maximum distance of interest.
Default:
20.0
DistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id
(output_control) xld_dist_trans →
HXLDDistTrans, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
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_xldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld
,
write_distance_transform_xldwrite_distance_transform_xldWriteDistanceTransformXldWriteDistanceTransformXldwrite_distance_transform_xld
,
serialize_distance_transform_xldserialize_distance_transform_xldSerializeDistanceTransformXldSerializeDistanceTransformXldserialize_distance_transform_xld
,
clear_distance_transform_xldclear_distance_transform_xldClearDistanceTransformXldClearDistanceTransformXldclear_distance_transform_xld
See also
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXlddistance_contours_xld
,
get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContourget_distance_transform_xld_contour
,
read_distance_transform_xldread_distance_transform_xldReadDistanceTransformXldReadDistanceTransformXldread_distance_transform_xld
,
deserialize_distance_transform_xlddeserialize_distance_transform_xldDeserializeDistanceTransformXldDeserializeDistanceTransformXlddeserialize_distance_transform_xld
,
get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParamget_distance_transform_xld_param
,
set_distance_transform_xld_paramset_distance_transform_xld_paramSetDistanceTransformXldParamSetDistanceTransformXldParamset_distance_transform_xld_param
Module
Foundation