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.cpu.pybind.geometry.PointCloud) -> None
Default constructor
__init__(self: open3d.cpu.pybind.geometry.PointCloud, arg0: open3d.cpu.pybind.geometry.PointCloud) -> None
Copy constructor
__init__(self: open3d.cpu.pybind.geometry.PointCloud, points: open3d.cpu.pybind.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: open3d.cpu.pybind.geometry.PointCloud, joggle_inputs: bool = False) → Tuple[open3d::geometry::TriangleMesh, List[int]]¶ Computes the convex hull of the point cloud.
- Parameters
joggle_inputs (bool) – If True allows the algorithm to add random noise to the points to work around degenerate inputs. This adds the ‘QJ’ option to the qhull command.
- Returns
The triangle mesh of the convex hull and the list of point indices that are part of the convex hull.
- Return type
tuple(open3d.geometry.TriangleMesh, list)
-
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, project_valid_depth_only=True)¶ 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) – The input depth image can be either a float image, or a uint16_t image.
intrinsic (open3d.camera.PinholeCameraIntrinsic) – Intrinsic parameters of the camera.
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) – The depth is scaled by 1 / depth_scale.
depth_trunc (float, optional, default=1000.0) – Truncated at depth_trunc distance.
stride (int, optional, default=1) – Sampling factor to support coarse point cloud extraction.
project_valid_depth_only (bool, optional, default=True) –
- Returns
open3d.geometry.PointCloud
-
static
create_from_rgbd_image
(image, intrinsic, extrinsic=(with default value), project_valid_depth_only=True)¶ 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) – The input image.
intrinsic (open3d.camera.PinholeCameraIntrinsic) – Intrinsic parameters of the camera.
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.]])
project_valid_depth_only (bool, optional, default=True) –
- Returns
open3d.geometry.PointCloud
-
crop
(*args, **kwargs)¶ Overloaded function.
- crop(self, bounding_box)
Function to crop input pointcloud into output pointcloud
- Parameters
bounding_box (open3d.geometry.AxisAlignedBoundingBox) – AxisAlignedBoundingBox to crop points
- Returns
open3d.geometry.PointCloud
- crop(self, bounding_box)
Function to crop input pointcloud into output pointcloud
- Parameters
bounding_box (open3d.geometry.OrientedBoundingBox) – AxisAlignedBoundingBox to crop points
- Returns
open3d.geometry.PointCloud
-
dimension
(self)¶ Returns whether the geometry is 2D or 3D.
- Returns
int
-
estimate_covariances
(self, search_param=KDTreeSearchParamKNN with knn = 30)¶ Function to compute the covariance matrix for each point in the point cloud
- Parameters
search_param (open3d.geometry.KDTreeSearchParam, optional, default=KDTreeSearchParamKNN with knn = 30) – The KDTree search parameters for neighborhood search.
- Returns
None
-
estimate_normals
(self, search_param=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=KDTreeSearchParamKNN with knn = 30) – The KDTree search parameters for neighborhood search.
fast_normal_computation (bool, optional, default=True) – If true, the normal estimation uses a non-iterative method to extract the eigenvector from the covariance matrix. This is faster, but is not as numerical stable.
- Returns
None
-
static
estimate_point_covariances
(input, search_param=KDTreeSearchParamKNN with knn = 30)¶ Static function to compute the covariance matrix for each point in the given point cloud, doesn’t change the input
- Parameters
input (open3d.geometry.PointCloud) – The input point cloud.
search_param (open3d.geometry.KDTreeSearchParam, optional, default=KDTreeSearchParamKNN with knn = 30) – The KDTree search parameters for neighborhood search.
- Returns
open3d.utility.Matrix3dVector
-
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: open3d.cpu.pybind.geometry.Geometry3D, robust: bool = False) → open3d::geometry::OrientedBoundingBox¶ Returns the oriented bounding box for the geometry.
Computes the oriented bounding box based on the PCA of the convex hull. The returned bounding box is an approximation to the minimal bounding box.
- Parameters
robust (bool) – If set to true uses a more robust method which works in degenerate cases but introduces noise to the points coordinates.
- Returns
The oriented bounding box. The bounding box is oriented such that the axes are ordered with respect to the principal components.
- Return type
-
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_covariances
(self: open3d.cpu.pybind.geometry.PointCloud) → bool¶ Returns
True
if the point cloud contains covariances.
-
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. Additional information about the choice of radius for noisy point clouds can be found in Mehra et. al. ‘Visibility of Noisy Point Cloud Data’, 2010.
- 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_consistent_tangent_plane
(self, k)¶ Function to orient the normals with respect to consistent tangent planes
- Parameters
k (int) – Number of k nearest neighbors used in constructing the Riemannian graph used to propogate normal orientation.
- Returns
None
-
orient_normals_to_align_with_direction
(self, orientation_reference=array([0.0, 0.0, 1.0]))¶ 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
None
-
orient_normals_towards_camera_location
(self, camera_location=array([0.0, 0.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
None
-
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
-
random_down_sample
(self, sampling_ratio)¶ Function to downsample input pointcloud into output pointcloud randomly. The sample is generated by randomly sampling the indexes from the point cloud.
- Parameters
sampling_ratio (float) – Sampling ratio, the ratio of number of selected points to total number of points[0-1]
- Returns
open3d.geometry.PointCloud
-
remove_non_finite_points
(self, remove_nan=True, remove_infinite=True)¶ Function to remove non-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, print_progress=False)¶ 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.
print_progress (bool, optional, default=False) – Set to True to print progress bar.
- Returns
Tuple[open3d.geometry.PointCloud, List[int]]
-
remove_statistical_outlier
(self, nb_neighbors, std_ratio, print_progress=False)¶ 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.
print_progress (bool, optional, default=False) – Set to True to print progress bar.
- Returns
Tuple[open3d.geometry.PointCloud, List[int]]
-
rotate
(*args, **kwargs)¶ Overloaded function.
- rotate(self, R)
Apply rotation to the geometry coordinates and normals.
- Parameters
R (numpy.ndarray[numpy.float64[3, 3]]) – The rotation matrix
- Returns
open3d.geometry.Geometry3D
- rotate(self, R, center)
Apply rotation to the geometry coordinates and normals.
- Parameters
R (numpy.ndarray[numpy.float64[3, 3]]) – The rotation matrix
center (numpy.ndarray[numpy.float64[3, 1]]) – Rotation center used for transformation.
- Returns
open3d.geometry.Geometry3D
-
scale
(*args, **kwargs)¶ Overloaded function.
- scale(self, scale, center)
Apply scaling to the geometry coordinates.
- Parameters
scale (float) – The scale parameter that is multiplied to the points/vertices of the geometry.
center (numpy.ndarray[numpy.float64[3, 1]]) – Scale center used for transformation.
- Returns
open3d.geometry.Geometry3D
- scale(self, scale, center)
Apply scaling to the geometry coordinates.
- Parameters
scale (float) – The scale parameter that is multiplied to the points/vertices of the geometry.
center (numpy.ndarray[numpy.float64[3, 1]]) – Scale center used for transformation.
- Returns
open3d.geometry.Geometry3D
-
segment_plane
(self, distance_threshold, ransac_n, num_iterations, seed=None)¶ 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.
seed (Optional[int], optional, default=None) – Seed value used in the random generator, set to None to use a random seed value with each function call.
- Returns
Tuple[numpy.ndarray[numpy.float64[4, 1]], List[int]]
-
select_by_index
(self, indices, invert=False)¶ Function to select points from input pointcloud into output pointcloud.
- 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. Normals and colors are averaged if they exist.
- 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 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]], List[open3d.utility.IntVector]]
-
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
covariances
¶ Points covariances.
- Type
float64
array of shape(num_points, 3, 3)
, 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
-
class