open3d.geometry.PointCloud
- class open3d.geometry.PointCloud
PointCloud class. A point cloud consists of point coordinates, and optionally point colors and point normals.
- class Type
Enum class for Geometry types.
- HalfEdgeTriangleMesh = <Type.HalfEdgeTriangleMesh: 7>
- Image = <Type.Image: 8>
- LineSet = <Type.LineSet: 4>
- PointCloud = <Type.PointCloud: 1>
- RGBDImage = <Type.RGBDImage: 9>
- TetraMesh = <Type.TetraMesh: 10>
- TriangleMesh = <Type.TriangleMesh: 6>
- Unspecified = <Type.Unspecified: 0>
- VoxelGrid = <Type.VoxelGrid: 2>
- property value
- __init__(*args, **kwargs)
Overloaded function.
__init__(self: open3d.open3d.geometry.PointCloud) -> None
Default constructor
__init__(self: open3d.open3d.geometry.PointCloud, arg0: open3d.open3d.geometry.PointCloud) -> None
Copy constructor
__init__(self: open3d.open3d.geometry.PointCloud, points: open3d.open3d.utility.Vector3dVector) -> None
Create a PointCloud from points
- clear(self)
Clear all elements in the geometry.
- Returns
open3d.geometry.Geometry
- cluster_dbscan(self, eps, min_points, print_progress=False)
Cluster PointCloud using the DBSCAN algorithm Ester et al., ‘A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise’, 1996. Returns a list of point labels, -1 indicates noise according to the algorithm.
- Parameters
eps (float) – Density parameter that is used to find neighbouring points.
min_points (int) – Minimum number of points to form a cluster.
print_progress (bool, optional, default=False) – If true the progress is visualized in the console.
- Returns
open3d.utility.IntVector
- compute_convex_hull(self)
Computes the convex hull of the point cloud.
- Returns
Tuple[open3d.geometry.TriangleMesh, List[int]]
- compute_mahalanobis_distance(self)
Function to compute the Mahalanobis distance for points in a point cloud. See: https://en.wikipedia.org/wiki/Mahalanobis_distance.
- Returns
open3d.utility.DoubleVector
- compute_mean_and_covariance(self)
Function to compute the mean and covariance matrix of a point cloud.
- Returns
Tuple[numpy.ndarray[numpy.float64[3, 1]], numpy.ndarray[numpy.float64[3, 3]]]
- compute_nearest_neighbor_distance(self)
Function to compute the distance from a point to its nearest neighbor in the point cloud
- Returns
open3d.utility.DoubleVector
- compute_point_cloud_distance(self, target)
For each point in the source point cloud, compute the distance to the target point cloud.
- Parameters
target (open3d.geometry.PointCloud) – The target point cloud.
- Returns
open3d.utility.DoubleVector
- static create_from_depth_image(depth, intrinsic, extrinsic=(with default value), depth_scale=1000.0, depth_trunc=1000.0, stride=1)
- Factory function to create a pointcloud from a depth image and a
camera. Given depth value d at (u, v) image coordinate, the corresponding 3d point is:
z = d / depth_scale
x = (u - cx) * z / fx
y = (v - cy) * z / fy
- Parameters
depth (open3d.geometry.Image) –
intrinsic (open3d.camera.PinholeCameraIntrinsic) –
extrinsic (numpy.ndarray[numpy.float64[4, 4]], optional) – array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])
depth_scale (float, optional, default=1000.0) –
depth_trunc (float, optional, default=1000.0) –
stride (int, optional, default=1) –
- Returns
open3d.geometry.PointCloud
- static create_from_rgbd_image(image, intrinsic, extrinsic=(with default value))
- Factory function to create a pointcloud from an RGB-D image and a
camera. Given depth value d at (u, v) image coordinate, the corresponding 3d point is:
z = d / depth_scale
x = (u - cx) * z / fx
y = (v - cy) * z / fy
- Parameters
image (open3d.geometry.RGBDImage) –
intrinsic (open3d.camera.PinholeCameraIntrinsic) –
extrinsic (numpy.ndarray[numpy.float64[4, 4]], optional) – array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])
- Returns
open3d.geometry.PointCloud
- PointCloud.crop(bounding_box, bounding_box)
Function to crop input pointcloud into output pointcloud
- Parameters
bounding_box (open3d.geometry.OrientedBoundingBox) – AxisAlignedBoundingBox to crop points
bounding_box – AxisAlignedBoundingBox to crop points
- Returns
open3d.geometry.PointCloud
- dimension(self)
Returns whether the geometry is 2D or 3D.
- Returns
int
- estimate_normals(self, search_param=geometry::KDTreeSearchParamKNN with knn = 30, fast_normal_computation=True)
Function to compute the normals of a point cloud. Normals are oriented with respect to the input point cloud if normals exist
- Parameters
search_param (open3d.geometry.KDTreeSearchParam, optional, default=geometry::KDTreeSearchParamKNN with knn = 30) – The KDTree search parameters for neighborhood search.
fast_normal_computation (bool, optional, default=True) – If true, the normal estiamtion uses a non-iterative method to extract the eigenvector from the covariance matrix. This is faster, but is not as numerical stable.
- Returns
bool
- get_axis_aligned_bounding_box(self)
Returns an axis-aligned bounding box of the geometry.
- Returns
open3d.geometry.AxisAlignedBoundingBox
- get_center(self)
Returns the center of the geometry coordinates.
- Returns
numpy.ndarray[numpy.float64[3, 1]]
- get_geometry_type(self)
Returns one of registered geometry types.
- Returns
open3d.geometry.Geometry.GeometryType
- get_max_bound(self)
Returns max bounds for geometry coordinates.
- Returns
numpy.ndarray[numpy.float64[3, 1]]
- get_min_bound(self)
Returns min bounds for geometry coordinates.
- Returns
numpy.ndarray[numpy.float64[3, 1]]
- get_oriented_bounding_box(self)
Returns an oriented bounding box of the geometry.
- Returns
open3d.geometry.OrientedBoundingBox
- static get_rotation_matrix_from_axis_angle(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_quaternion(rotation: numpy.ndarray[numpy.float64[4, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_xyz(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_xzy(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_yxz(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_yzx(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_zxy(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- static get_rotation_matrix_from_zyx(rotation: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 3]]
- has_colors(self)
Returns
True
if the point cloud contains point colors.- Returns
bool
- has_normals(self)
Returns
True
if the point cloud contains point normals.- Returns
bool
- has_points(self)
Returns
True
if the point cloud contains points.- Returns
bool
Removes hidden points from a point cloud and returns a mesh of the remaining points. Based on Katz et al. ‘Direct Visibility of Point Sets’, 2007.
- Parameters
camera_location (numpy.ndarray[numpy.float64[3, 1]]) – All points not visible from that location will be reomved
radius (float) – The radius of the sperical projection
- Returns
Tuple[open3d.geometry.TriangleMesh, List[int]]
- is_empty(self)
Returns
True
iff the geometry is empty.- Returns
bool
- normalize_normals(self)
Normalize point normals to length 1.
- Returns
open3d.geometry.PointCloud
- orient_normals_to_align_with_direction(self, orientation_reference=array([0., 0., 1.]))
Function to orient the normals of a point cloud
- Parameters
orientation_reference (numpy.ndarray[numpy.float64[3, 1]], optional, default=array([0., 0., 1.])) – Normals are oriented with respect to orientation_reference.
- Returns
bool
- orient_normals_towards_camera_location(self, camera_location=array([0., 0., 0.]))
Function to orient the normals of a point cloud
- Parameters
camera_location (numpy.ndarray[numpy.float64[3, 1]], optional, default=array([0., 0., 0.])) – Normals are oriented with towards the camera_location.
- Returns
bool
- paint_uniform_color(self, color)
Assigns each point in the PointCloud the same color.
- Parameters
color (numpy.ndarray[numpy.float64[3, 1]]) – RGB color for the PointCloud.
- Returns
open3d.geometry.PointCloud
- remove_none_finite_points(self, remove_nan=True, remove_infinite=True)
Function to remove none-finite points from the PointCloud
- Parameters
remove_nan (bool, optional, default=True) – Remove NaN values from the PointCloud
remove_infinite (bool, optional, default=True) – Remove infinite values from the PointCloud
- Returns
open3d.geometry.PointCloud
- remove_radius_outlier(self, nb_points, radius)
Function to remove points that have less than nb_points in a given sphere of a given radius
- Parameters
nb_points (int) – Number of points within the radius.
radius (float) – Radius of the sphere.
- Returns
Tuple[open3d.geometry.PointCloud, List[int]]
- remove_statistical_outlier(self, nb_neighbors, std_ratio)
Function to remove points that are further away from their neighbors in average
- Parameters
nb_neighbors (int) – Number of neighbors around the target point.
std_ratio (float) – Standard deviation ratio.
- Returns
Tuple[open3d.geometry.PointCloud, List[int]]
- rotate(self, R, center=True)
Apply rotation to the geometry coordinates and normals.
- Parameters
R (numpy.ndarray[numpy.float64[3, 3]]) – The rotation matrix
center (bool, optional, default=True) – If true, then the rotation is applied to the centered geometry
- Returns
open3d.geometry.Geometry3D
- scale(self, scale, center=True)
Apply scaling to the geometry coordinates.
- Parameters
scale (float) – The scale parameter that is multiplied to the points/vertices of the geometry
center (bool, optional, default=True) – If true, then the scale is applied to the centered geometry
- Returns
open3d.geometry.Geometry3D
- segment_plane(self, distance_threshold, ransac_n, num_iterations)
Segments a plane in the point cloud using the RANSAC algorithm.
- Parameters
distance_threshold (float) – Max distance a point can be from the plane model, and still be considered an inlier.
ransac_n (int) – Number of initial points to be considered inliers in each iteration.
num_iterations (int) – Number of iterations.
- Returns
Tuple[numpy.ndarray[numpy.float64[4, 1]], List[int]]
- select_down_sample(self, indices, invert=False)
Function to select points from input pointcloud into output pointcloud.
indices
: Indices of points to be selected.invert
: Set toTrue
to invert the selection of indices.- Parameters
indices (List[int]) – Indices of points to be selected.
invert (bool, optional, default=False) – Set to
True
to invert the selection of indices.
- Returns
open3d.geometry.PointCloud
- transform(self, arg0)
Apply transformation (4x4 matrix) to the geometry coordinates.
- Parameters
arg0 (numpy.ndarray[numpy.float64[4, 4]]) –
- Returns
open3d.geometry.Geometry3D
- translate(self, translation, relative=True)
Apply translation to the geometry coordinates.
- Parameters
translation (numpy.ndarray[numpy.float64[3, 1]]) – A 3D vector to transform the geometry
relative (bool, optional, default=True) – If true, the translation vector is directly added to the geometry coordinates. Otherwise, the center is moved to the translation vector.
- Returns
open3d.geometry.Geometry3D
- uniform_down_sample(self, every_k_points)
Function to downsample input pointcloud into output pointcloud uniformly. The sample is performed in the order of the points with the 0-th point always chosen, not at random.
- Parameters
every_k_points (int) – Sample rate, the selected point indices are [0, k, 2k, …]
- Returns
open3d.geometry.PointCloud
- voxel_down_sample(self, voxel_size)
Function to downsample input pointcloud into output pointcloud with a voxel
- Parameters
voxel_size (float) – Voxel size to downsample into.
- Returns
open3d.geometry.PointCloud
- voxel_down_sample_and_trace(self, voxel_size, min_bound, max_bound, approximate_class=False)
Function to downsample using geometry.PointCloud.VoxelDownSample also records point cloud index before downsampling
- Parameters
voxel_size (float) – Voxel size to downsample into.
min_bound (numpy.ndarray[numpy.float64[3, 1]]) – Minimum coordinate of voxel boundaries
max_bound (numpy.ndarray[numpy.float64[3, 1]]) – Maximum coordinate of voxel boundaries
approximate_class (bool, optional, default=False) –
- Returns
Tuple[open3d.geometry.PointCloud, numpy.ndarray[numpy.int32[m, n]]]
- HalfEdgeTriangleMesh = <Type.HalfEdgeTriangleMesh: 7>
- Image = <Type.Image: 8>
- LineSet = <Type.LineSet: 4>
- PointCloud = <Type.PointCloud: 1>
- RGBDImage = <Type.RGBDImage: 9>
- TetraMesh = <Type.TetraMesh: 10>
- TriangleMesh = <Type.TriangleMesh: 6>
- Unspecified = <Type.Unspecified: 0>
- VoxelGrid = <Type.VoxelGrid: 2>
- property colors
RGB colors of points.
- Type
float64
array of shape(num_points, 3)
, range[0, 1]
, usenumpy.asarray()
to access data
- property normals
Points normals.
- Type
float64
array of shape(num_points, 3)
, usenumpy.asarray()
to access data
- property points
Points coordinates.
- Type
float64
array of shape(num_points, 3)
, usenumpy.asarray()
to access data