|
Open3D (C++ API)
|
#include <PointCloud.h>
Public Member Functions | |
| PointCloud () | |
| PointCloud (const std::vector< Eigen::Vector3d > &points) | |
| ~PointCloud () override | |
| PointCloud & | Clear () override |
| Clear all elements in the geometry. More... | |
| bool | IsEmpty () const override |
Returns true iff the geometry is empty. More... | |
| Eigen::Vector3d | GetMinBound () const override |
| Returns min bounds for geometry coordinates. More... | |
| Eigen::Vector3d | GetMaxBound () const override |
| Returns max bounds for geometry coordinates. More... | |
| Eigen::Vector3d | GetCenter () const override |
| Returns the center of the geometry coordinates. More... | |
| AxisAlignedBoundingBox | GetAxisAlignedBoundingBox () const override |
| Returns an axis-aligned bounding box of the geometry. More... | |
| OrientedBoundingBox | GetOrientedBoundingBox () const override |
| Returns an oriented bounding box of the geometry. More... | |
| PointCloud & | Transform (const Eigen::Matrix4d &transformation) override |
| Apply transformation (4x4 matrix) to the geometry coordinates. More... | |
| PointCloud & | Translate (const Eigen::Vector3d &translation, bool relative=true) override |
| Apply translation to the geometry coordinates. More... | |
| PointCloud & | Scale (const double scale, bool center=true) override |
| Apply scaling to the geometry coordinates. More... | |
| PointCloud & | Rotate (const Eigen::Matrix3d &R, bool center=true) override |
| Apply rotation to the geometry coordinates and normals. More... | |
| PointCloud & | operator+= (const PointCloud &cloud) |
| PointCloud | operator+ (const PointCloud &cloud) const |
| bool | HasPoints () const |
| bool | HasNormals () const |
| bool | HasColors () const |
| PointCloud & | NormalizeNormals () |
| PointCloud & | PaintUniformColor (const Eigen::Vector3d &color) |
| Assigns each point in the PointCloud the same color. More... | |
| PointCloud & | RemoveNoneFinitePoints (bool remove_nan=true, bool remove_infinite=true) |
| std::shared_ptr< PointCloud > | SelectDownSample (const std::vector< size_t > &indices, bool invert=false) const |
| std::shared_ptr< PointCloud > | VoxelDownSample (double voxel_size) const |
| std::tuple< std::shared_ptr< PointCloud >, Eigen::MatrixXi > | VoxelDownSampleAndTrace (double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound, bool approximate_class=false) const |
| std::shared_ptr< PointCloud > | UniformDownSample (size_t every_k_points) const |
| std::shared_ptr< PointCloud > | Crop (const AxisAlignedBoundingBox &bbox) const |
| std::shared_ptr< PointCloud > | Crop (const OrientedBoundingBox &bbox) const |
| std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > | RemoveRadiusOutliers (size_t nb_points, double search_radius) const |
| std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > | RemoveStatisticalOutliers (size_t nb_neighbors, double std_ratio) const |
| bool | EstimateNormals (const KDTreeSearchParam &search_param=KDTreeSearchParamKNN(), bool fast_normal_computation=true) |
| bool | OrientNormalsToAlignWithDirection (const Eigen::Vector3d &orientation_reference=Eigen::Vector3d(0.0, 0.0, 1.0)) |
| bool | OrientNormalsTowardsCameraLocation (const Eigen::Vector3d &camera_location=Eigen::Vector3d::Zero()) |
| std::vector< double > | ComputePointCloudDistance (const PointCloud &target) |
| std::tuple< Eigen::Vector3d, Eigen::Matrix3d > | ComputeMeanAndCovariance () const |
| std::vector< double > | ComputeMahalanobisDistance () const |
| std::vector< double > | ComputeNearestNeighborDistance () const |
| std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > | ComputeConvexHull () const |
| Function that computes the convex hull of the point cloud using qhull. More... | |
| std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > | HiddenPointRemoval (const Eigen::Vector3d &camera_location, const double radius) const |
| std::vector< int > | ClusterDBSCAN (double eps, size_t min_points, bool print_progress=false) const |
| std::tuple< Eigen::Vector4d, std::vector< size_t > > | SegmentPlane (const double distance_threshold=0.01, const int ransac_n=3, const int num_iterations=100) const |
| Segment PointCloud plane using the RANSAC algorithm. More... | |
| std::shared_ptr< PointCloud > | CreateFromVoxelGrid (const VoxelGrid &voxel_grid) |
Public Member Functions inherited from open3d::geometry::Geometry3D | |
| ~Geometry3D () override | |
Public Member Functions inherited from open3d::geometry::Geometry | |
| virtual | ~Geometry () |
| GeometryType | GetGeometryType () const |
| Returns one of registered geometry types. More... | |
| int | Dimension () const |
| Returns whether the geometry is 2D or 3D. More... | |
Static Public Member Functions | |
| static std::shared_ptr< PointCloud > | CreateFromDepthImage (const Image &depth, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic=Eigen::Matrix4d::Identity(), double depth_scale=1000.0, double depth_trunc=1000.0, int stride=1) |
| static std::shared_ptr< PointCloud > | CreateFromRGBDImage (const RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic=Eigen::Matrix4d::Identity()) |
Static Public Member Functions inherited from open3d::geometry::Geometry3D | |
| static Eigen::Matrix3d | GetRotationMatrixFromXYZ (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from XYZ RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromYZX (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from YZX RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromZXY (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from ZXY RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromXZY (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from XZY RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromZYX (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from ZYX RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromYXZ (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from YXZ RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromAxisAngle (const Eigen::Vector3d &rotation) |
| Get Rotation Matrix from AxisAngle RotationType. More... | |
| static Eigen::Matrix3d | GetRotationMatrixFromQuaternion (const Eigen::Vector4d &rotation) |
| Get Rotation Matrix from Quaternion. More... | |
Data Fields | |
| std::vector< Eigen::Vector3d > | points_ |
| std::vector< Eigen::Vector3d > | normals_ |
| std::vector< Eigen::Vector3d > | colors_ |
Additional Inherited Members | |
Public Types inherited from open3d::geometry::Geometry | |
| enum | GeometryType { GeometryType::Unspecified = 0, GeometryType::PointCloud = 1, GeometryType::VoxelGrid = 2, GeometryType::Octree = 3, GeometryType::LineSet = 4, GeometryType::MeshBase = 5, GeometryType::TriangleMesh = 6, GeometryType::HalfEdgeTriangleMesh = 7, GeometryType::Image = 8, GeometryType::RGBDImage = 9, GeometryType::TetraMesh = 10, GeometryType::OrientedBoundingBox = 11, GeometryType::AxisAlignedBoundingBox = 12 } |
| Specifies possible geometry types. More... | |
Protected Member Functions inherited from open3d::geometry::Geometry3D | |
| Geometry3D (GeometryType type) | |
| Parameterized Constructor. More... | |
| Eigen::Vector3d | ComputeMinBound (const std::vector< Eigen::Vector3d > &points) const |
| Compute min bound of a list points. More... | |
| Eigen::Vector3d | ComputeMaxBound (const std::vector< Eigen::Vector3d > &points) const |
| Compute max bound of a list points. More... | |
| Eigen::Vector3d | ComputeCenter (const std::vector< Eigen::Vector3d > &points) const |
| Computer center of a list of points. More... | |
| void | ResizeAndPaintUniformColor (std::vector< Eigen::Vector3d > &colors, const size_t size, const Eigen::Vector3d &color) const |
| Resizes the colors vector and paints a uniform color. More... | |
| void | TransformPoints (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &points) const |
| Transforms all points with the transformation matrix. More... | |
| void | TransformNormals (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &normals) const |
| Transforms the normals with the transformation matrix. More... | |
| void | TranslatePoints (const Eigen::Vector3d &translation, std::vector< Eigen::Vector3d > &points, bool relative) const |
| Apply translation to the geometry coordinates. More... | |
| void | ScalePoints (const double scale, std::vector< Eigen::Vector3d > &points, bool center) const |
Scale the coordinates of all points by the scaling factor scale. More... | |
| void | RotatePoints (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &points, bool center) const |
Rotate all points with the rotation matrix R. More... | |
| void | RotateNormals (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &normals, bool center) const |
Rotate all normals with the rotation matrix R. More... | |
Protected Member Functions inherited from open3d::geometry::Geometry | |
| Geometry (GeometryType type, int dimension) | |
| Parameterized Constructor. More... | |
|
inline |
|
inline |
|
inlineoverride |
|
overridevirtual |
Clear all elements in the geometry.
Implements open3d::geometry::Geometry3D.
| std::vector< int > open3d::geometry::PointCloud::ClusterDBSCAN | ( | double | eps, |
| size_t | min_points, | ||
| bool | print_progress = false |
||
| ) | const |
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 vector of point labels, -1 indicates noise according to the algorithm.
| std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > open3d::geometry::PointCloud::ComputeConvexHull | ( | ) | const |
Function that computes the convex hull of the point cloud using qhull.
| std::vector< double > open3d::geometry::PointCloud::ComputeMahalanobisDistance | ( | ) | const |
Function to compute the Mahalanobis distance for points in an
| input | point cloud https://en.wikipedia.org/wiki/Mahalanobis_distance |
| std::tuple< Eigen::Vector3d, Eigen::Matrix3d > open3d::geometry::PointCloud::ComputeMeanAndCovariance | ( | ) | const |
Function to compute the mean and covariance matrix of an
| input | point cloud |
| std::vector< double > open3d::geometry::PointCloud::ComputeNearestNeighborDistance | ( | ) | const |
Function to compute the distance from a point to its nearest neighbor in the
| input | point cloud |
| std::vector< double > open3d::geometry::PointCloud::ComputePointCloudDistance | ( | const PointCloud & | target | ) |
Function to compute the point to point distances between point clouds
| source | is the first point cloud. |
| target | is the second point cloud. |
| source |
|
static |
Factory function to create a pointcloud from a depth image and a camera model (PointCloudFactory.cpp) The input depth image can be either a float image, or a uint16_t image. In the latter case, the depth is scaled by 1 / depth_scale, and truncated at depth_trunc distance. The depth image is also sampled with stride, in order to support (fast) coarse point cloud extraction. Return an empty pointcloud if the conversion fails.
|
static |
Factory function to create a pointcloud from an RGB-D image and a camera model (PointCloudFactory.cpp) Return an empty pointcloud if the conversion fails.
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::CreateFromVoxelGrid | ( | const VoxelGrid & | voxel_grid | ) |
Function to create a PointCloud from a VoxelGrid. It transforms the voxel centers to 3D points using the original point cloud coordinate (with respect to the center of the voxel grid).
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::Crop | ( | const AxisAlignedBoundingBox & | bbox | ) | const |
Function to crop pointcloud into output pointcloud All points with coordinates outside the bounding box
| bbox | are clipped. |
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::Crop | ( | const OrientedBoundingBox & | bbox | ) | const |
Function to crop pointcloud into output pointcloud All points with coordinates outside the bounding box
| bbox | are clipped. |
| bool open3d::geometry::PointCloud::EstimateNormals | ( | const KDTreeSearchParam & | search_param = KDTreeSearchParamKNN(), |
| bool | fast_normal_computation = true |
||
| ) |
Function to compute the normals of a point cloud
| cloud | is the input point cloud. It also stores the output normals. Normals are oriented with respect to the input point cloud if normals exist in the input. |
| search_param | The KDTree search parameters |
|
overridevirtual |
Returns an axis-aligned bounding box of the geometry.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns the center of the geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns max bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns min bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns an oriented bounding box of the geometry.
Implements open3d::geometry::Geometry3D.
|
inline |
|
inline |
|
inline |
| std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > open3d::geometry::PointCloud::HiddenPointRemoval | ( | const Eigen::Vector3d & | camera_location, |
| const double | radius | ||
| ) | const |
This is an implementation of the Hidden Point Removal operator described in Katz et. al. 'Direct Visibility of Point Sets', 2007.
| camera_location | is the view point that is used to remove invisible points. |
| radius | defines the radius of the spherical projection. 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. |
|
overridevirtual |
Returns true iff the geometry is empty.
Implements open3d::geometry::Geometry3D.
|
inline |
| PointCloud open3d::geometry::PointCloud::operator+ | ( | const PointCloud & | cloud | ) | const |
| PointCloud & open3d::geometry::PointCloud::operator+= | ( | const PointCloud & | cloud | ) |
| bool open3d::geometry::PointCloud::OrientNormalsToAlignWithDirection | ( | const Eigen::Vector3d & | orientation_reference = Eigen::Vector3d(0.0, 0.0, 1.0) | ) |
Function to orient the normals of a point cloud
| cloud | is the input point cloud. It must have normals. Normals are oriented with respect to |
| orientation_reference |
| bool open3d::geometry::PointCloud::OrientNormalsTowardsCameraLocation | ( | const Eigen::Vector3d & | camera_location = Eigen::Vector3d::Zero() | ) |
Function to orient the normals of a point cloud
| cloud | is the input point cloud. It also stores the output normals. Normals are oriented with towards |
| camera_location |
|
inline |
Assigns each point in the PointCloud the same color.
| color. |
| PointCloud & open3d::geometry::PointCloud::RemoveNoneFinitePoints | ( | bool | remove_nan = true, |
| bool | remove_infinite = true |
||
| ) |
Remove all points fromt he point cloud that have a nan entry, or infinite entries. Also removes the corresponding normals and color entries.
| std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > open3d::geometry::PointCloud::RemoveRadiusOutliers | ( | size_t | nb_points, |
| double | search_radius | ||
| ) | const |
Function to remove points that have less than
| nb_points | in a sphere of radius |
| search_radius |
| std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > open3d::geometry::PointCloud::RemoveStatisticalOutliers | ( | size_t | nb_neighbors, |
| double | std_ratio | ||
| ) | const |
Function to remove points that are further away from their
| nb_neighbor | neighbors in average. |
|
overridevirtual |
Apply rotation to the geometry coordinates and normals.
| R | A 3D vector that either defines the three angles for Euler rotation, or in the axis-angle representation the normalized vector defines the axis of rotation and the norm the angle around this axis. |
| center | If true, the rotation is applied relative to the center of the geometry. Otherwise, the rotation is directly applied to the geometry, i.e. relative to the origin. |
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply scaling to the geometry coordinates.
| scale | The scale parameter that is multiplied to the points/vertices of the geometry. |
| center | If true, the scale is applied relative to the center of the geometry. Otherwise, the scale is directly applied to the geometry, i.e. relative to the origin. |
Implements open3d::geometry::Geometry3D.
| std::tuple< Eigen::Vector4d, std::vector< size_t > > open3d::geometry::PointCloud::SegmentPlane | ( | const double | distance_threshold = 0.01, |
| const int | ransac_n = 3, |
||
| const int | num_iterations = 100 |
||
| ) | const |
Segment PointCloud plane using the RANSAC algorithm.
| distance_threshold | Max distance a point can be from the plane model, and still be considered an inlier. |
| ransac_n | Number of initial points to be considered inliers in each iteration. |
| num_iterations | Number of iterations. |
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::SelectDownSample | ( | const std::vector< size_t > & | indices, |
| bool | invert = false |
||
| ) | const |
Function to select points from
| input | pointcloud into |
| indices | are selected. |
|
overridevirtual |
Apply transformation (4x4 matrix) to the geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply translation to the geometry coordinates.
| translation | A 3D vector to transform the geometry. |
| relative | If true, the translation is directly applied to the geometry. Otherwise, the geometry center is moved to the translation. |
Implements open3d::geometry::Geometry3D.
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::UniformDownSample | ( | size_t | every_k_points | ) | const |
Function to downsample
| input | pointcloud into output pointcloud uniformly |
| every_k_points | indicates the sample rate. |
| std::shared_ptr< PointCloud > open3d::geometry::PointCloud::VoxelDownSample | ( | double | voxel_size | ) | const |
Function to downsample
| input | pointcloud into output pointcloud with a voxel |
| voxel_size | defines the resolution of the voxel grid, smaller value leads to denser output point cloud. Normals and colors are averaged if they exist. |
| std::tuple< std::shared_ptr< PointCloud >, Eigen::MatrixXi > open3d::geometry::PointCloud::VoxelDownSampleAndTrace | ( | double | voxel_size, |
| const Eigen::Vector3d & | min_bound, | ||
| const Eigen::Vector3d & | max_bound, | ||
| bool | approximate_class = false |
||
| ) | const |
Function to downsample using VoxelDownSample, but specialized for Surface convolution project. Experimental function.
| std::vector<Eigen::Vector3d> open3d::geometry::PointCloud::colors_ |
| std::vector<Eigen::Vector3d> open3d::geometry::PointCloud::normals_ |
| std::vector<Eigen::Vector3d> open3d::geometry::PointCloud::points_ |
1.8.13