A sparse Cartesian 3D point cloud object. More...
Inherits PointCloud.
Public Member Functions | |
cvb.SparsePointCloud | crop (self, cvb.Cuboid clip_box) |
Creates a new point cloud which only consists of the points inside the clip box. More... | |
cvb.SparsePointCloud | from_dense_point_cloud (cvb.DensePointCloud dense_point_cloud) |
Creates a sparse point cloud from a dense point cloud with confidence plane. More... | |
cvb.SparsePointCloud | frustum_crop (self, cvb.Cuboid clip_box, cvb.Angle theta, cvb.Angle phi) |
Creates a new point cloud which only consists of the points inside the clip box. More... | |
cvb.SparsePointCloud | plane_crop (self, cvb.Plane3D plane, cvb.NumberRange range, int crop_range) |
Creates a new point cloud where points within or outside a range parallel to given plane are cropped. More... | |
cvb.SparsePointCloud | plane_crop (self, float threshold, Optional[int] crop_below_above) |
Creates a new point cloud which only consists of the points below or above given plane. More... | |
Tuple[cvb.DensePointCloud, int] | to_dense_point_cloud (self, int conversion_mode=cvb.ConversionMode.Automatic) |
Creates a dense point cloud from a sparse point cloud. More... | |
Public Member Functions inherited from PointCloud | |
cvb.Cuboid | calculate_bounding_box (self) |
Calculates the minimum and maximum extent of the point cloud. More... | |
cvb.Point3D | calculate_center_of_gravity (self) |
Gets the center of gravity of the point cloud. More... | |
cvb.Matrix3D | calculate_covariance_matrix (self) |
Get the covariance matrix of the point cloud. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | convert (self, int flags) |
Creates a new point cloud, which is a copy from this point cloud, but with possibly different data type and number of components. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | down_sample (self, int mode, int value) |
Creates a new point cloud which has several points being removed dependent on the down sample mode and value. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | duplicate (self) |
Creates a new point cloud which is a copy from this point cloud. More... | |
cvb.Plane3D | fit_plane (self, Optional[cvb.Cuboid] aoi) |
Fits a plane in the points of the point cloud. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | from_composite (cvb.Composite composite) |
Creates a point cloud from a composite. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | matrix_transform (self, cvb.Matrix3DH matrix) |
Creates a new point cloud with all points being transformed by the given transformation. More... | |
cvb.Image | range_map (self, cvb.NumberRange x_range, cvb.NumberRange y_range, cvb.Size2D size, float background) |
Creates a new range map image via linear projection in negative z-direction. More... | |
None | save (self, str file_name, Optional[int] flags=cvb.PointCloudFlags.Float) |
Saves the given point cloud to the file with the given file_name. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | scale (self, Union[cvb.Factors3D, List[float]] factors) |
Creates a new point cloud with all points being scaled by the given factors. More... | |
Union[cvb.DensePointCloud, cvb.SparsePointCloud] | transform (self, cvb.AffineMatrix3D transformation) |
Creates a new point cloud with all points being transformed by the given transformation. More... | |
Additional Inherited Members | |
Properties inherited from PointCloud | |
data_type = property | |
cvb.DataType: Gets the DataType of the x, y, z(, w) components of the given PointCloud. | |
layout = property | |
int: Gets the layout of the available buffers / planes of the given point cloud (see cvb.PointCloudLayout). | |
num_points = property | |
int: Gets the number of x, y, z(, w) points in the given point cloud. | |
plane_count = property | |
int: Gets the number of planes enumerated by this object. | |
planes = property | |
List[cvb.Plane]: Gets all available planes enumerated by this object. | |
A sparse Cartesian 3D point cloud object.
A sparse point cloud is logically seen an array of 3D points. There is no order or neighboring information between the single points. It has less memory than a dense point cloud. Conversion to a dense point cloud is difficult, as the grid thus neighbor information is missing.
cvb.SparsePointCloud crop | ( | self, | |
cvb.Cuboid | clip_box | ||
) |
Creates a new point cloud which only consists of the points inside the clip box.
clip_box : cvb.Cuboid Cuboid defining the bounds for the points to be copied (min/max are inclusive).
cvb.SparsePointCloud The new point cloud.
cvb.SparsePointCloud from_dense_point_cloud | ( | cvb.DensePointCloud | dense_point_cloud | ) |
Creates a sparse point cloud from a dense point cloud with confidence plane.
Non-confident points will be removed and the confidence plane is not kept. The new sparse point cloud has the same planes as the dense point cloud(except confidence).
dense_point_cloud : cvb.DensePointCloud Dense point cloud create sparse point cloud from.
cvb.SparsePointCloud Converted sparse point cloud.
cvb.SparsePointCloud frustum_crop | ( | self, | |
cvb.Cuboid | clip_box, | ||
cvb.Angle | theta, | ||
cvb.Angle | phi | ||
) |
Creates a new point cloud which only consists of the points inside the clip box.
The orientation of the two boundary planes Z=Zmin and Z=Zmax can be modified by angles theta and phi. For theta, phi = 0,0 the function will give the same result as crop(). Angle theta tilts the two Z - boundary planes towards the(positive) Y - axis. Additionally, phi rotates the tilted Z - boundary planes around the Z - axis(for theta = 0, phi will have no effect, because it is then just an inplane - rotation). The two Z - boundary planes will stay parallel, but no longer necessarily orthogonal to the lateral boundary planes. Note, that only the Z - boundaries are tilted and not the whole bounding box, i.e.X - and Y - boundaries will stay the same.
clip_box : cvb.Cuboid Cuboid defining the bounds for the points to be copied(min / max are inclusive).
theta : cvb.Angle Tilt angle of the two Z-boundary planes Z=Zmin and Z=Zmax towards the positive Y - axis.
phi : cvb.Angle Rotation angle of the tilted Z-boundary planes around the Z - axis.If Theta = 0, Phi will have no effect.
cvb.SparsePointCloud plane_crop | ( | self, | |
cvb.Plane3D | plane, | ||
cvb.NumberRange | range, | ||
int | crop_range | ||
) |
Creates a new point cloud where points within or outside a range parallel to given plane are cropped.
The plane is defined by the hessian normal form:
Points are cropped within or outside a range parallel to the given plane. The range is defined by range. Note, that Range.Max and Range.Min are applied along normal direction.
In order to define a range around the plane, maximum and minimum range have to be positive and negative respectively.
plane : cvb.Plane3D Points parallel to this plane will be cropped.
range : cvb.NumberRange Points within or outside this range will be cropped.
crop_range : int Indicates whether points should be cropped within or outside the range.
cvb.SparsePointCloud Cropped point cloud.
cvb.SparsePointCloud plane_crop | ( | self, | |
float | threshold, | ||
Optional[int] | crop_below_above | ||
) |
Creates a new point cloud which only consists of the points below or above given plane.
The plane is defined by the hessian normal form:
Above plane means all points with z values greater than the plane are cropped. It makes no difference in which direction the given normal points. The normal is always converted, so that it points up (positive z value). Note, if Normal.Z equals 0, 'below' and 'above' is undefined and thus no cropping is done. Instead the input point cloud will be duplicated.
threshold : float Points below plane plus this value and points above plane minus this value are cropped respectively. This threshold should be set, if plane is calculated via fit_plane(). It ensures, that all points beyond this plane plus noise are cropped.
crop_below_above : Optional[int] Indicates if points should either be cropped below or above plane (optional, default value: cvb.CropDirection.Below).
cvb.SparsePointCloud Cropped point cloud.
Tuple[cvb.DensePointCloud, int] to_dense_point_cloud | ( | self, | |
int | conversion_mode = cvb.ConversionMode.Automatic |
||
) |
Creates a dense point cloud from a sparse point cloud.
This function maps the points of a sparse point cloud into a newly created dense point cloud. First, a resolution is determined that minimizes the points lost by the conversion.
If multiple points map onto the same x, y position in the dense cloud, the one with the larger z value is retained. The output cloud always has a confidence plane, which is set to 0 if no point of the sparse cloud matched the location. It is set to 1 if a point of the sparse cloud could be mapped to that location.
If the sparse cloud has a w component, it is replicated as well.
conversion_mode : int Mode used in conversion to dense point cloud. Currently Automatic is the only option (see cvb.ConversionMode).
Tuple[cvb.DensePointCloud, int] A tuple of the converted dense point cloud and the number of dropped points that overlapped in x and y and thus got dropped.