Skip to content

edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3dT_edges_object_model_3d🔗

Short description🔗

edges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3dT_edges_object_model_3d — Find edges in a 3D object model.

Signature🔗

edges_object_model_3d( object_model_3d ObjectModel3D, number MinAmplitude, string GenParamName, number GenParamValue, out object_model_3d ObjectModel3DEdges )void EdgesObjectModel3d( const HTuple& ObjectModel3D, const HTuple& MinAmplitude, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* ObjectModel3DEdges )static void HOperatorSet.EdgesObjectModel3d( HTuple objectModel3D, HTuple minAmplitude, HTuple genParamName, HTuple genParamValue, out HTuple objectModel3DEdges )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

Herror T_edges_object_model_3d( 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)

HObjectModel3D HObjectModel3D.EdgesObjectModel3d( HTuple minAmplitude, HTuple genParamName, HTuple genParamValue )

HObjectModel3D HObjectModel3D.EdgesObjectModel3d( double minAmplitude, string genParamName, double genParamValue )

Description🔗

edges_object_model_3dEdgesObjectModel3d finds 3D edges in the 3D object model ObjectModel3DobjectModel3Dobject_model_3d and returns them in the 3D object model ObjectModel3DEdgesobjectModel3DEdgesobject_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_3dXyzToObjectModel3d or that were obtained with a sensor that delivers the mapping. MinAmplitudeminAmplitudemin_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 ObjectModel3DobjectModel3Dobject_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 ObjectModel3DEdgesobjectModel3DEdgesobject_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_y'"edge_dir_y" and '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_modelFindSurfaceModel.

Generic parameters can optionally be used to influence the edge extraction. If desired, these parameters and their corresponding values can be specified with GenParamNamegenParamNamegen_param_name and GenParamValuegenParamValuegen_param_value. The following values for GenParamNamegenParamNamegen_param_name are possible:

  • '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: 3030.

  • 'estimate_viewpose'"estimate_viewpose": This parameter can be used to turn off the automatic viewpose estimation and set a manual viewpoint.

    Default: 'true'"true".

  • 'viewpoint'"viewpoint": This parameter only has an effect when 'estimate_viewpose'"estimate_viewpose" is set to '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" 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_3dRigidTransObjectModel3d or if the 3D sensor performed a similar transformation, the original viewpoint must be set. For this, GenParamValuegenParamValuegen_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 ObjectModel3DobjectModel3Dobject_model_3d. Note that for use of this parameter, the values in the X-, Y-, and Z- images obtained from object_model_3d_to_xyzObjectModel3dToXyz 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".

Execution information🔗

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🔗

ObjectModel3DobjectModel3Dobject_model_3d (input_control) object_model_3d → (handle)HTuple (HHandle)HObjectModel3D, HTuple (IntPtr)HHandleHtuple (handle)

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

MinAmplitudeminAmplitudemin_amplitude (input_control) number → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)

Edge threshold.

GenParamNamegenParamNamegen_param_name (input_control) string(-array) → (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Names of the generic parameters.

Default: [][]
List of values: 'estimate_viewpose', 'max_gap', 'viewpoint'"estimate_viewpose", "max_gap", "viewpoint"

GenParamValuegenParamValuegen_param_value (input_control) number(-array) → (real / integer / string)HTuple (double / Hlong / HString)HTuple (double / int / long / string)MaybeSequence[Union[int, str, float]]Htuple (double / Hlong / char*)

Values of the generic parameters.

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

ObjectModel3DEdgesobjectModel3DEdgesobject_model_3dedges (output_control) object_model_3d → (handle)HTuple (HHandle)HObjectModel3D, HTuple (IntPtr)HHandleHtuple (handle)

3D object model containing the edges.

Result🔗

edges_object_model_3dEdgesObjectModel3d returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

read_object_model_3dReadObjectModel3d, xyz_to_object_model_3dXyzToObjectModel3d

Possible successors

find_surface_modelFindSurfaceModel, find_surface_model_imageFindSurfaceModelImage, refine_surface_model_poseRefineSurfaceModelPose, refine_surface_model_pose_imageRefineSurfaceModelPoseImage

Module🔗

3D Metrology