Operator Reference

edges_object_model_3dT_edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d (Operator)

edges_object_model_3dT_edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d — Find edges in a 3D object model.

Signature

Herror T_edges_object_model_3d(const Htuple ObjectModel3D, const Htuple MinAmplitude, const Htuple GenParamName, const Htuple GenParamValue, Htuple* ObjectModel3DEdges)

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)

def edges_object_model_3d(object_model_3d: HHandle, min_amplitude: Union[float, int], gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, str, float]]) -> HHandle

Description

edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d finds 3D edges in the 3D object model ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d and returns them in the 3D object model ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_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_3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d or that were obtained with a sensor that delivers the mapping. MinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_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 ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_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 ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_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_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" 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_modelFindSurfaceModelFindSurfaceModelfind_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 GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name and GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value. The following values for GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name are possible:

'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: 30.

'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: 'true'"true""true""true""true".

'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint":

This parameter only has an effect when 'estimate_viewpose'"estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose" is set to '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" 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_3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d or if the 3D sensor performed a similar transformation, the original viewpoint must be set. For this, GenParamValueGenParamValueGenParamValuegenParamValuegen_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 ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_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_xyzObjectModel3dToXyzObjectModel3dToXyzobject_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: '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

ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control)  object_model_3d HObjectModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the 3D object model whose edges should be computed.

MinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude (input_control)  number HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Edge threshold.

GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Names of the generic parameters.

Default: []

List of values: 'estimate_viewpose'"estimate_viewpose""estimate_viewpose""estimate_viewpose""estimate_viewpose", 'max_gap'"max_gap""max_gap""max_gap""max_gap", 'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint"

GenParamValueGenParamValueGenParamValuegenParamValuegen_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: []

Suggested values: '0 0 0'"0 0 0""0 0 0""0 0 0""0 0 0", 10, 30, 100, 'true'"true""true""true""true", 'false'"false""false""false""false"

ObjectModel3DEdgesObjectModel3DEdgesObjectModel3DEdgesobjectModel3DEdgesobject_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_3dEdgesObjectModel3dEdgesObjectModel3dedges_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_3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d

Possible Successors

find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelfind_surface_model, find_surface_model_imagefind_surface_model_imageFindSurfaceModelImageFindSurfaceModelImagefind_surface_model_image, refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose, refine_surface_model_pose_imagerefine_surface_model_pose_imageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImagerefine_surface_model_pose_image

Module

3D Metrology