edges_object_model_3dT_edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d (Operator)
Name
edges_object_model_3dT_edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d
— Find edges in a 3D object model.
Signature
void EdgesObjectModel3d(const HTuple& ObjectModel3D, const HTuple& MinAmplitude, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* ObjectModel3DEdges)
HObjectModel3D HObjectModel3D::EdgesObjectModel3d(const HTuple& MinAmplitude, const HTuple& GenParamName, const HTuple& GenParamValue) const
HObjectModel3D HObjectModel3D::EdgesObjectModel3d(double MinAmplitude, const HString& GenParamName, double GenParamValue) const
HObjectModel3D HObjectModel3D::EdgesObjectModel3d(double MinAmplitude, const char* GenParamName, double GenParamValue) const
HObjectModel3D HObjectModel3D::EdgesObjectModel3d(double MinAmplitude, const wchar_t* GenParamName, double GenParamValue) const
(Windows only)
Description
edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d
finds 3D edges in the 3D object model
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
and returns them in the 3D object model
ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_model_3dedges
.
The operator supports edge extraction only from 3D object models that
contain a XYZ mapping, such as models that were created with
xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d
or that were obtained with a sensor that
delivers the mapping.
MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude
defines the minimum amplitude of a discontinuity in
order to be classified as an edge.
It is given in the same unit as used in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
.
The extracted edges are a subset of the points of the input object model.
In addition to the coordinates of the edges, the point normal vectors
in ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_model_3dedges
contain the viewing direction of each
3D edge point from the viewpoint towards the edge point.
Also, the attributes 'edge_dir_x'"edge_dir_x""edge_dir_x""edge_dir_x""edge_dir_x""edge_dir_x", 'edge_dir_y'"edge_dir_y""edge_dir_y""edge_dir_y""edge_dir_y""edge_dir_y" and
'edge_dir_z'"edge_dir_z""edge_dir_z""edge_dir_z""edge_dir_z""edge_dir_z" contain a vector that is perpendicular to
the edge direction and to the viewing direction.
The attributes are set such that the 3D object model can be used
for edge-supported surface-based matching in find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model
.
Generic parameters can optionally be used to influence the edge extraction.
If desired, these parameters and their corresponding values can be specified
with GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
and GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
.
The following values for GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
are possible:
- 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap":
-
This parameter specifies the maximum gap size in pixels in the
XYZ-images that are closed.
Gaps larger than this value will contain edges at their
boundary, while gaps smaller than this value will not.
This suppresses edges around smaller patches that were not
reconstructed by the sensor as well as edges at the more
distant part of a discontinuity.
For sensors with very large resolutions, the value should be
increased to avoid spurious edges.
Default value: 30.
- 'estimate_viewpose'"estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose":
-
This parameter can be used to turn off the automatic viewpose
estimation and set a manual viewpoint.
Default value: 'true'"true""true""true""true""true".
- 'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint""viewpoint":
-
This parameter only has an effect when 'estimate_viewpose'"estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose"
is set to 'false'"false""false""false""false""false". It specifies the viewpoint from which
the 3D data is seen.
It is used to determine the viewing directions and edge directions.
It defaults to the origin '0 0 0'"0 0 0""0 0 0""0 0 0""0 0 0""0 0 0" of the 3D data.
If the projection center is at a different location, for example, if
the 3D object model was transformed with
rigid_trans_object_model_3drigid_trans_object_model_3dRigidTransObjectModel3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d
or if the 3D sensor performed a
similar transformation, the original viewpoint must be set.
For this, GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
must contain a string consisting of
the three coordinates (x, y and z) of the viewpoint, separated by spaces.
The viewpoint is defined in the same coordinate frame as
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
.
Note that for use of this parameter, the values in the X-, Y-, and Z-
images obtained from object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz
must have increasing
values from left to right, top to bottom, and for object parts further
away from the camera, respectively.
Default value: '0 0 0'"0 0 0""0 0 0""0 0 0""0 0 0""0 0 0".
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on internal data level.
This operator supports canceling timeouts and interrupts.
Parameters
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
(input_control) object_model_3d →
HObjectModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the 3D object model whose edges should
be computed.
MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude
(input_control) number →
HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Edge threshold.
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
(input_control) string(-array) →
HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Names of the generic parameters.
Default value: []
List of values: 'estimate_viewpose'"estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose", 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap", 'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint""viewpoint"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
(input_control) number(-array) →
HTupleMaybeSequence[Union[int, str, float]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Values of the generic parameters.
Default value: []
Suggested values: '0 0 0'"0 0 0""0 0 0""0 0 0""0 0 0""0 0 0", 10, 30, 100, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"
ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_model_3dedges
(output_control) object_model_3d →
HObjectModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
3D object model containing the edges.
Result
edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d
returns 2 (H_MSG_TRUE) if all parameters are
correct. If necessary, an exception is raised.
Possible Predecessors
read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d
,
xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d
Possible Successors
find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model
,
find_surface_model_imagefind_surface_model_imageFindSurfaceModelImageFindSurfaceModelImageFindSurfaceModelImagefind_surface_model_image
,
refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose
,
refine_surface_model_pose_imagerefine_surface_model_pose_imageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImagerefine_surface_model_pose_image
Module
3D Metrology