connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d连接对象模型三维(算子)

名称

connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d — 确定三维对象模型的连通分量。

签名

connection_object_model_3d( : : ObjectModel3D, Feature, Value : ObjectModel3DConnected)

Herror T_connection_object_model_3d(const Htuple ObjectModel3D, const Htuple Feature, const Htuple Value, Htuple* ObjectModel3DConnected)

void ConnectionObjectModel3d(const HTuple& ObjectModel3D, const HTuple& Feature, const HTuple& Value, HTuple* ObjectModel3DConnected)

static HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HTuple& Feature, const HTuple& Value)

HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const HString& Feature, double Value) const

HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const char* Feature, double Value) const

HObjectModel3DArray HObjectModel3D::ConnectionObjectModel3d(const wchar_t* Feature, double Value) const   ( Windows only)

static void HOperatorSet.ConnectionObjectModel3d(HTuple objectModel3D, HTuple feature, HTuple value, out HTuple objectModel3DConnected)

static HObjectModel3D[] HObjectModel3D.ConnectionObjectModel3d(HObjectModel3D[] objectModel3D, HTuple feature, HTuple value)

HObjectModel3D[] HObjectModel3D.ConnectionObjectModel3d(string feature, double value)

def connection_object_model_3d(object_model_3d: MaybeSequence[HHandle], feature: MaybeSequence[str], value: MaybeSequence[Union[int, float]]) -> Sequence[HHandle]

描述

connection_object_model_3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d 用于确定由 ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d 给定的输入三维对象模型的连通分量。判断三维对象模型中两个部分是否相连可基于不同属性及相应的距离函数。属性与距离函数可在 FeatureFeatureFeatureFeaturefeaturefeature 中选择:

'distance_3d'"distance_3d""distance_3d""distance_3d""distance_3d""distance_3d"

对三维点集的点坐标进行欧几里得距离测试。对于任何小于 ValueValueValueValuevaluevalue 的距离,这些点被视为相连。

'angle'"angle""angle""angle""angle""angle"

对三维对象模型中各点法线之间的夹角进行比较。当法线夹角距离小于 ValueValueValueValuevaluevalue 时,视为相连。ValueValueValueValuevaluevalue 以弧度为单位,取值范围应在 0 至 π 之间。

前提条件:三维对象模型必须包含法线,可通过 surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d 进行计算。

'distance_mapping'"distance_mapping""distance_mapping""distance_mapping""distance_mapping""distance_mapping"

该映射计算存储在二维映射中的三维对象模型中各点像素坐标之间的距离。当 ValueValueValueValuevaluevalue 值大于 1.5 时,可在图像中建立 8-邻域连接。

前提条件:三维对象模型必须包含二维映射,该映射仅在使用 xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d 创建三维对象模型时可用。

'mesh'"mesh""mesh""mesh""mesh""mesh"

返回三维对象模型中由三角形或多边形连接的部分。ValueValueValueValuevaluevalue 将被忽略。

前提条件:三维对象模型必须提供三角剖分,可通过 triangulate_object_model_3dtriangulate_object_model_3dTriangulateObjectModel3dTriangulateObjectModel3dTriangulateObjectModel3dtriangulate_object_model_3d 实现。或者,若三维对象模型已包含二维映射,可将 prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3dPurposePurposePurposePurposepurposepurpose 设为 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation",快速对三维对象模型进行三角剖分。

'lines'"lines""lines""lines""lines""lines"

返回由线连接的对象模型部分。 ValueValueValueValuevaluevalue 将被忽略。

前提条件:三维对象模型必须包含折线,可通过 intersect_plane_object_model_3dintersect_plane_object_model_3dIntersectPlaneObjectModel3dIntersectPlaneObjectModel3dIntersectPlaneObjectModel3dintersect_plane_object_model_3d 进行计算。

或者,可通过 set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttribset_object_model_3d_attribset_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribModSetObjectModel3dAttribModset_object_model_3d_attrib_mod 手动设置所需属性。请注意,三维对象模型可能已包含所需属性,尤其当该模型通过 read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d 读取或使用 deserialize_object_model_3ddeserialize_object_model_3dDeserializeObjectModel3dDeserializeObjectModel3dDeserializeObjectModel3ddeserialize_object_model_3d 反序列化时。若需验证所需属性是否可用,请使用 get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParamsGetObjectModel3dParamsget_object_model_3d_params 进行检查。

执行信息

此算子支持取消超时和中断。

参数

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (输入控制)  object_model_3d(-array) HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

三维对象模型的句柄。

FeatureFeatureFeatureFeaturefeaturefeature (输入控制)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

用于计算连通分量的属性。

默认值: 'distance_3d' "distance_3d" "distance_3d" "distance_3d" "distance_3d" "distance_3d"

值列表: 'angle'"angle""angle""angle""angle""angle", 'distance_3d'"distance_3d""distance_3d""distance_3d""distance_3d""distance_3d", 'distance_mapping'"distance_mapping""distance_mapping""distance_mapping""distance_mapping""distance_mapping", 'lines'"lines""lines""lines""lines""lines", 'mesh'"mesh""mesh""mesh""mesh""mesh"

ValueValueValueValuevaluevalue (输入控制)  number(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

两个连通分量之间距离的最大值。

默认值: 1.0

建议值: 1.0, 1.1, 1.5, 10.0, 100.0

ObjectModel3DConnectedObjectModel3DConnectedObjectModel3DConnectedObjectModel3DConnectedobjectModel3DConnectedobject_model_3dconnected (输出控制)  object_model_3d-array HObjectModel3D, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

表示连通分量的三维对象模型的句柄。

示例(HDevelop)

gen_object_model_3d_from_points (rand(100), rand(100),\
                                 rand(100), ObjectModel3D)
connection_object_model_3d (ObjectModel3D, 'distance_3d', 0.2,\
                            ObjectModel3DConnected)
dev_get_window (WindowHandle)
visualize_object_model_3d (WindowHandle, [ObjectModel3DConnected], [], [],\
                           ['colored'], [12], [], [], [], PoseOut)

结果

connection_object_model_3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d 在所有参数正确时返回 2 (H_MSG_TRUE)。如有必要,则抛出异常。

可能的前趋

read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3dSelectPointsObjectModel3dselect_points_object_model_3d

可能的后继

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

另见

select_object_model_3dselect_object_model_3dSelectObjectModel3dSelectObjectModel3dSelectObjectModel3dselect_object_model_3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3dSelectPointsObjectModel3dselect_points_object_model_3d

模块

三维计量