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
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