Operator Reference

reduce_object_model_3d_by_viewT_reduce_object_model_3d_by_viewReduceObjectModel3dByViewReduceObjectModel3dByViewreduce_object_model_3d_by_view (Operator)

reduce_object_model_3d_by_viewT_reduce_object_model_3d_by_viewReduceObjectModel3dByViewReduceObjectModel3dByViewreduce_object_model_3d_by_view — Remove points from a 3D object model by projecting it to a virtual view and removing all points outside of a given region.

Signature

reduce_object_model_3d_by_view(Region : : ObjectModel3D, CamParam, Pose : ObjectModel3DReduced)

Herror T_reduce_object_model_3d_by_view(const Hobject Region, const Htuple ObjectModel3D, const Htuple CamParam, const Htuple Pose, Htuple* ObjectModel3DReduced)

void ReduceObjectModel3dByView(const HObject& Region, const HTuple& ObjectModel3D, const HTuple& CamParam, const HTuple& Pose, HTuple* ObjectModel3DReduced)

static HObjectModel3DArray HObjectModel3D::ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3DArray& ObjectModel3D, const HCamPar& CamParam, const HPoseArray& Pose)

HObjectModel3D HObjectModel3D::ReduceObjectModel3dByView(const HRegion& Region, const HCamPar& CamParam, const HPose& Pose) const

HObjectModel3DArray HCamPar::ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Pose) const

HObjectModel3D HCamPar::ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3D& ObjectModel3D, const HPose& Pose) const

static HObjectModel3DArray HPose::ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3DArray& ObjectModel3D, const HCamPar& CamParam, const HPoseArray& Pose)

HObjectModel3D HPose::ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3D& ObjectModel3D, const HCamPar& CamParam) const

static void HOperatorSet.ReduceObjectModel3dByView(HObject region, HTuple objectModel3D, HTuple camParam, HTuple pose, out HTuple objectModel3DReduced)

static HObjectModel3D[] HObjectModel3D.ReduceObjectModel3dByView(HRegion region, HObjectModel3D[] objectModel3D, HCamPar camParam, HPose[] pose)

HObjectModel3D HObjectModel3D.ReduceObjectModel3dByView(HRegion region, HCamPar camParam, HPose pose)

HObjectModel3D[] HCamPar.ReduceObjectModel3dByView(HRegion region, HObjectModel3D[] objectModel3D, HPose[] pose)

HObjectModel3D HCamPar.ReduceObjectModel3dByView(HRegion region, HObjectModel3D objectModel3D, HPose pose)

static HObjectModel3D[] HPose.ReduceObjectModel3dByView(HRegion region, HObjectModel3D[] objectModel3D, HCamPar camParam, HPose[] pose)

HObjectModel3D HPose.ReduceObjectModel3dByView(HRegion region, HObjectModel3D objectModel3D, HCamPar camParam)

def reduce_object_model_3d_by_view(region: HObject, object_model_3d: MaybeSequence[HHandle], cam_param: Sequence[Union[int, float, str]], pose: Sequence[Union[int, float]]) -> Sequence[HHandle]

def reduce_object_model_3d_by_view_s(region: HObject, object_model_3d: MaybeSequence[HHandle], cam_param: Sequence[Union[int, float, str]], pose: Sequence[Union[int, float]]) -> HHandle

Description

reduce_object_model_3d_by_viewreduce_object_model_3d_by_viewReduceObjectModel3dByViewReduceObjectModel3dByViewreduce_object_model_3d_by_view projects the points of ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d into the image plane given by PosePosePoseposepose and CamParamCamParamCamParamcamParamcam_param and reduces the 3D object model to the points lying inside the region given in RegionRegionRegionregionregion. In particular, the points are first transformed with the pose and then projected using the camera parameters. Only those points that are located inside the specified region are copied to the new 3D object model.

Faces of a mesh are only contained in the output 3D object model if all corner points are within the region.

As alternative to camera parameters and a pose, an XYZ-mapping contained in ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d can be used for the reduction. For this, CamParamCamParamCamParamcamParamcam_param must be set to 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping" or an empty tuple and an empty tuple must be passed to PosePosePoseposepose. In this case, the original image coordinates of the 3D points are used to check if a point is inside RegionRegionRegionregionregion.

Attention

Cameras with hypercentric lenses are not supported.

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

RegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHObjectHobject

Region in the image plane.

ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control)  object_model_3d(-array) HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the 3D object 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.

Suggested values: 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping", []

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

3D pose of the world coordinate system in camera coordinates.

Number of elements: Pose == 7

ObjectModel3DReducedObjectModel3DReducedObjectModel3DReducedobjectModel3DReducedobject_model_3dreduced (output_control)  object_model_3d(-array) HObjectModel3D, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the reduced 3D object model.

Example (HDevelop)

gen_object_model_3d_from_points (200*(rand(100)-0.5), \
                                 200*(rand(100)-0.5), \
                                 200*(rand(100)-0.5), ObjectModel3D)
gen_circle (Circle, 240, 320, 60)
CamParam := ['area_scan_telecentric_division',1,0,1,1,320,240,640,480]
Pose := [0,0,1,0,0,0,0]
reduce_object_model_3d_by_view (Circle, ObjectModel3D, CamParam, \
                                Pose, ObjectModel3DReduced)
dev_get_window (WindowHandle)
visualize_object_model_3d (WindowHandle, [ObjectModel3D, \
                           ObjectModel3DReduced], CamParam, Pose, \
                           ['color_0', 'point_size_1'], ['blue',6], \
                           [], [], [], PoseOut)

Result

reduce_object_model_3d_by_viewreduce_object_model_3d_by_viewReduceObjectModel3dByViewReduceObjectModel3dByViewreduce_object_model_3d_by_view 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

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

See also

select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3dselect_points_object_model_3d

Module

3D Metrology