Operator Reference

project_shape_model_3dT_project_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d (Operator)

project_shape_model_3dT_project_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d — Project the edges of a 3D shape model into image coordinates.

Signature

Herror T_project_shape_model_3d(Hobject* ModelContours, const Htuple ShapeModel3DID, const Htuple CamParam, const Htuple Pose, const Htuple HiddenSurfaceRemoval, const Htuple MinFaceAngle)

void ProjectShapeModel3d(HObject* ModelContours, const HTuple& ShapeModel3DID, const HTuple& CamParam, const HTuple& Pose, const HTuple& HiddenSurfaceRemoval, const HTuple& MinFaceAngle)

HXLDCont HShapeModel3D::ProjectShapeModel3d(const HCamPar& CamParam, const HPose& Pose, const HString& HiddenSurfaceRemoval, const HTuple& MinFaceAngle) const

HXLDCont HShapeModel3D::ProjectShapeModel3d(const HCamPar& CamParam, const HPose& Pose, const HString& HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HShapeModel3D::ProjectShapeModel3d(const HCamPar& CamParam, const HPose& Pose, const char* HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HShapeModel3D::ProjectShapeModel3d(const HCamPar& CamParam, const HPose& Pose, const wchar_t* HiddenSurfaceRemoval, double MinFaceAngle) const   ( Windows only)

HXLDCont HCamPar::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const HString& HiddenSurfaceRemoval, const HTuple& MinFaceAngle) const

HXLDCont HCamPar::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const HString& HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HCamPar::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const char* HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HCamPar::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const wchar_t* HiddenSurfaceRemoval, double MinFaceAngle) const   ( Windows only)

HXLDCont HPose::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HCamPar& CamParam, const HString& HiddenSurfaceRemoval, const HTuple& MinFaceAngle) const

HXLDCont HPose::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HCamPar& CamParam, const HString& HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HPose::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HCamPar& CamParam, const char* HiddenSurfaceRemoval, double MinFaceAngle) const

HXLDCont HPose::ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HCamPar& CamParam, const wchar_t* HiddenSurfaceRemoval, double MinFaceAngle) const   ( Windows only)

static void HOperatorSet.ProjectShapeModel3d(out HObject modelContours, HTuple shapeModel3DID, HTuple camParam, HTuple pose, HTuple hiddenSurfaceRemoval, HTuple minFaceAngle)

HXLDCont HShapeModel3D.ProjectShapeModel3d(HCamPar camParam, HPose pose, string hiddenSurfaceRemoval, HTuple minFaceAngle)

HXLDCont HShapeModel3D.ProjectShapeModel3d(HCamPar camParam, HPose pose, string hiddenSurfaceRemoval, double minFaceAngle)

HXLDCont HCamPar.ProjectShapeModel3d(HShapeModel3D shapeModel3DID, HPose pose, string hiddenSurfaceRemoval, HTuple minFaceAngle)

HXLDCont HCamPar.ProjectShapeModel3d(HShapeModel3D shapeModel3DID, HPose pose, string hiddenSurfaceRemoval, double minFaceAngle)

HXLDCont HPose.ProjectShapeModel3d(HShapeModel3D shapeModel3DID, HCamPar camParam, string hiddenSurfaceRemoval, HTuple minFaceAngle)

HXLDCont HPose.ProjectShapeModel3d(HShapeModel3D shapeModel3DID, HCamPar camParam, string hiddenSurfaceRemoval, double minFaceAngle)

def project_shape_model_3d(shape_model_3did: HHandle, cam_param: Sequence[Union[int, float, str]], pose: Sequence[Union[int, float]], hidden_surface_removal: str, min_face_angle: Union[int, float]) -> HObject

Description

The operator project_shape_model_3dproject_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d projects the edges of the 3D object model that was used to create the 3D shape model ShapeModel3DIDShapeModel3DIDShapeModel3DIDshapeModel3DIDshape_model_3did into the image coordinate system and returns the projected edges in ModelContoursModelContoursModelContoursmodelContoursmodel_contours. The coordinates of the 3D object model are given in the 3D world coordinate system (mcs). First, they are transformed into the camera coordinate system (ccs) using the external camera parameters given in PosePosePoseposepose. Then, these coordinates are projected into the image coordinate system based on the internal camera parameters CamParamCamParamCamParamcamParamcam_param.

The internal camera parameters CamParamCamParamCamParamcamParamcam_param describe the projection characteristics of the camera (see Calibration). The PosePosePoseposepose is in the form , see Transformations / Poses and “Solution Guide III-C - 3D Vision”. Hence, it describes the position and orientation of the model coordinate system defined by the 3D object model relative to the camera coordinate system.

The parameter HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal can be used to switch on or to switch off the removal of hidden surfaces. If HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal is set to 'true'"true""true""true""true", only those projected edges are returned that are not hidden by faces of the 3D object model. If HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal is set to 'false'"false""false""false""false", all projected edges are returned. This is faster than a projection with HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal set to 'true'"true""true""true""true".

If the system variable (see set_systemset_systemSetSystemSetSystemset_system) 'opengl_hidden_surface_removal_enable'"opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable" is set to 'true'"true""true""true""true" (which is default if it is available) and HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal is set to 'true'"true""true""true""true", the projection of the model is accelerated using the graphics card. Depending on the graphics card this is significantly faster than the non accelerated algorithm. Be aware that the results of the OpenGL projection are slightly different compared to the analytic projection. Notable, only the contours visible through CamParamCamParamCamParamcamParamcam_param are projected in this mode.

3D edges are only projected if the angle between the two 3D faces that are incident with the 3D edge is at least MinFaceAngleMinFaceAngleMinFaceAngleminFaceAnglemin_face_angle. If MinFaceAngleMinFaceAngleMinFaceAngleminFaceAnglemin_face_angle is set to 0.0, all edges are projected. If MinFaceAngleMinFaceAngleMinFaceAngleminFaceAnglemin_face_angle is set to (equivalent to 180 degrees), only the silhouette of the 3D object model is returned. This parameter can be used to suppress edges within curved surfaces, e.g., the surface of a cylinder.

If for the model creation with create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d the parameter 'union_adjacent_contours'"union_adjacent_contours""union_adjacent_contours""union_adjacent_contours""union_adjacent_contours" was activated, adjacent contours are joined.

project_shape_model_3dproject_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d and project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d return the same result if the 3D object model that was used to create the 3D shape model is passed to project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d.

project_shape_model_3dproject_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d is especially useful in order to visualize the matches that are returned by find_shape_model_3dfind_shape_model_3dFindShapeModel3dFindShapeModel3dfind_shape_model_3d in the case that the underlying 3D object model is no longer available.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

ModelContoursModelContoursModelContoursmodelContoursmodel_contours (output_object)  xld_cont-array objectHXLDContHObjectHObjectHobject *

Contour representation of the model view.

ShapeModel3DIDShapeModel3DIDShapeModel3DIDshapeModel3DIDshape_model_3did (input_control)  shape_model_3d HShapeModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the 3D shape model.

CamParamCamParamCamParamcamParamcam_param (input_control)  campar HCamPar, HTupleSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Internal camera parameters.

PosePosePoseposepose (input_control)  pose HPose, HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

3D pose of the 3D shape model in the world coordinate system.

HiddenSurfaceRemovalHiddenSurfaceRemovalHiddenSurfaceRemovalhiddenSurfaceRemovalhidden_surface_removal (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Remove hidden surfaces?

Default: 'true' "true" "true" "true" "true"

List of values: 'false'"false""false""false""false", 'true'"true""true""true""true"

MinFaceAngleMinFaceAngleMinFaceAngleminFaceAnglemin_face_angle (input_control)  angle.rad HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Smallest face angle for which the edge is displayed

Default: 0.523599

Suggested values: 0.17, 0.26, 0.35, 0.52

Result

If the parameters are valid, the operator project_shape_model_3dproject_shape_model_3dProjectShapeModel3dProjectShapeModel3dproject_shape_model_3d returns the value 2 ( H_MSG_TRUE) . If necessary an exception is raised.

Possible Predecessors

create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d, read_shape_model_3dread_shape_model_3dReadShapeModel3dReadShapeModel3dread_shape_model_3d, get_shape_model_3d_paramsget_shape_model_3d_paramsGetShapeModel3dParamsGetShapeModel3dParamsget_shape_model_3d_params, find_shape_model_3dfind_shape_model_3dFindShapeModel3dFindShapeModel3dfind_shape_model_3d

Alternatives

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d

See also

convert_point_3d_cart_to_spherconvert_point_3d_cart_to_spherConvertPoint3dCartToSpherConvertPoint3dCartToSpherconvert_point_3d_cart_to_spher, convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart, create_cam_pose_look_at_pointcreate_cam_pose_look_at_pointCreateCamPoseLookAtPointCreateCamPoseLookAtPointcreate_cam_pose_look_at_point, trans_pose_shape_model_3dtrans_pose_shape_model_3dTransPoseShapeModel3dTransPoseShapeModel3dtrans_pose_shape_model_3d

Module

3D Metrology