connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d (算子)
名称
connection_object_model_3dT_connection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dconnection_object_model_3d — 确定三维对象模型的连接组件。
签名
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 determines the connected components
of the input 3D object model given in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d. The decision
if two parts of the 3D object model are connected can be based on
different attributes and respective distance functions.
The attribute and distance function can be selected in FeatureFeatureFeatureFeaturefeaturefeature:
- 'distance_3d'"distance_3d""distance_3d""distance_3d""distance_3d""distance_3d":
The euclidean distance between the point coordinates of the
set of the 3D points are tested. For any distance below ValueValueValueValuevaluevalue
the points are considered as connected.
- 'angle'"angle""angle""angle""angle""angle":
-
The angles between the normals of the points in the 3D object model
are compared. Similar normals are considered as connected if their
angular distance is below ValueValueValueValuevaluevalue. ValueValueValueValuevaluevalue is
specified in radians and should be between 0 and pi.
Prerequisite: The 3D object model must contain normals, which can
be computed with 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":
-
The mapping measures the distance between the pixel coordinates of
points in the 3D object model that are stored in the 2D mapping.
Use a value larger than 1.5 for ValueValueValueValuevaluevalue to get a connection
in an 8-neighborhood in the image.
Prerequisite: The 3D object model must contain a 2D mapping, which is
available if the 3D object model has been created with
xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d。
- 'mesh'"mesh""mesh""mesh""mesh""mesh":
-
Returns parts of the 3D object model that are connected with
triangles or polygons. ValueValueValueValuevaluevalue is ignored.
Prerequisite: The 3D object model must provide a triangulation, which can
be obtained with triangulate_object_model_3dtriangulate_object_model_3dTriangulateObjectModel3dTriangulateObjectModel3dTriangulateObjectModel3dtriangulate_object_model_3d。Alternatively,
if the 3D object model already contains a 2D mapping,
prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d can be used with
PurposePurposePurposePurposepurposepurpose set to 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation"
to quickly triangulate the 3D object model.
- 'lines'"lines""lines""lines""lines""lines":
-
Returns parts of the object model that are connected by lines.
ValueValueValueValuevaluevalue is ignored.
Prerequisite: The 3D object model must contain polylines, which can be
computed with intersect_plane_object_model_3dintersect_plane_object_model_3dIntersectPlaneObjectModel3dIntersectPlaneObjectModel3dIntersectPlaneObjectModel3dintersect_plane_object_model_3d。
Alternatively, the required attributes can be set manually with
set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttribset_object_model_3d_attrib or
set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribModSetObjectModel3dAttribModset_object_model_3d_attrib_mod。Note that the 3D object model might
already contain the required attribute, especially if the 3D object model
has been read with read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d or if it has been
deserialized with deserialize_object_model_3ddeserialize_object_model_3dDeserializeObjectModel3dDeserializeObjectModel3dDeserializeObjectModel3ddeserialize_object_model_3d。To check whether the
required attribute is available, use 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)
3D 对象模型的句柄。
FeatureFeatureFeatureFeaturefeaturefeature (输入控制) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Attribute used to calculate the connected
components.
默认值:
'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)
Maximum value for the distance between two
connected components.
默认值:
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)
Handle of the 3D object models that represent
the connected components.
示例(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
模块
三维计量