create_distance_transform_xldT_create_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld创建距离变换扩展线描述(算子)
名称
create_distance_transform_xldT_create_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld — 创建 XLD 距离变换。
签名
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)
描述
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld 创建参考轮廓 ContourContourContourContourcontourcontour 的 XLD 距离变换,并将生成的句柄返回至 DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id。
创建 XLD 距离变换后,算子
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld 将计算测试轮廓到参考轮廓 ContourContourContourContourcontourcontour 的逐点距离。更精确地说,对于测试轮廓的每个点,都会计算其到 ContourContourContourContourcontourcontour 中轮廓的最小距离。
参数 ModeModeModeModemodemode 决定
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld 计算的距离类型:
'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" 计算到 ContourContourContourContourcontourcontour 轮廓基点的最小距离。而 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" 则计算到轮廓 ContourContourContourContourcontourcontour 中各轮廓段的最小距离(见下图)。
参数 MaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance 指定调用方感兴趣的参考轮廓 ContourContourContourContourcontourcontour 的最大距离。若测试轮廓某点到参考轮廓的距离超过 MaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance,则
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld 的输出距离将被设置为 MaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance。
当参考轮廓需要反复使用时,create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld 和
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld 算子可替代
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld。
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld 为 ContourContourContourContourcontourcontour 周边相关区域内的每个像素存储其最近的参考轮廓 ContourContourContourContourcontourcontour 点或线段(取决于 ModeModeModeModemodemode)。 这使得
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld 能快速计算距离,且计算速度几乎不受参考轮廓点数/线段数、ModeModeModeModemodemode 以及测试轮廓点位置的影响。然而,XLD 距离变换的准备过程可能需要数秒至数分钟,具体取决于参考轮廓的点或线段数量,以及 ContourContourContourContourcontourcontour 周围受 MaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance 影响的相关区域。此外,若将 ModeModeModeModemodemode 设置为 'point_to_point' 模式,create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXldCreateDistanceTransformXldcreate_distance_transform_xld 的运行速度将更快。
get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContourGetDistanceTransformXldContourget_distance_transform_xld_contour 和 get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParamGetDistanceTransformXldParamget_distance_transform_xld_param 可用于获取 XLD 距离变换 DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id 的参考轮廓和参数。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
ContourContourContourContourcontourcontour (输入对象) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
参考轮廓。
ModeModeModeModemodemode (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
计算到点之间的距离('point_to_point')
或到整个线段之间的距离('point_to_segment')。
默认值:
'point_to_point'
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
值列表:
'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"
MaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistancemax_distance (输入控制) real → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
最大感兴趣的距离。
默认值:
20.0
DistanceTransformIDDistanceTransformIDDistanceTransformIDDistanceTransformIDdistanceTransformIDdistance_transform_id (输出控制) xld_dist_trans → HXLDDistTrans, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
XLD 距离变换的句柄。
结果
如果所有参数都正确,算子返回值 2 (H_MSG_TRUE)。否则,将抛出异常。
可能的后继
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXldApplyDistanceTransformXldapply_distance_transform_xld,
write_distance_transform_xldwrite_distance_transform_xldWriteDistanceTransformXldWriteDistanceTransformXldWriteDistanceTransformXldwrite_distance_transform_xld,
serialize_distance_transform_xldserialize_distance_transform_xldSerializeDistanceTransformXldSerializeDistanceTransformXldSerializeDistanceTransformXldserialize_distance_transform_xld,
clear_distance_transform_xldclear_distance_transform_xldClearDistanceTransformXldClearDistanceTransformXldClearDistanceTransformXldclear_distance_transform_xld
另见
distance_contours_xlddistance_contours_xldDistanceContoursXldDistanceContoursXldDistanceContoursXlddistance_contours_xld,
get_distance_transform_xld_contourget_distance_transform_xld_contourGetDistanceTransformXldContourGetDistanceTransformXldContourGetDistanceTransformXldContourget_distance_transform_xld_contour,
read_distance_transform_xldread_distance_transform_xldReadDistanceTransformXldReadDistanceTransformXldReadDistanceTransformXldread_distance_transform_xld,
deserialize_distance_transform_xlddeserialize_distance_transform_xldDeserializeDistanceTransformXldDeserializeDistanceTransformXldDeserializeDistanceTransformXlddeserialize_distance_transform_xld,
get_distance_transform_xld_paramget_distance_transform_xld_paramGetDistanceTransformXldParamGetDistanceTransformXldParamGetDistanceTransformXldParamget_distance_transform_xld_param,
set_distance_transform_xld_paramset_distance_transform_xld_paramSetDistanceTransformXldParamSetDistanceTransformXldParamSetDistanceTransformXldParamset_distance_transform_xld_param
模块
基础