Go to the documentation of this file.
40 class PinholeCameraIntrinsic;
62 Eigen::Vector3d
GetCenter()
const override;
67 bool relative =
true)
override;
85 for (
size_t i = 0; i <
normals_.size(); i++) {
101 bool remove_infinite =
true);
107 const std::vector<size_t> &indices,
bool invert =
false)
const;
117 std::tuple<std::shared_ptr<PointCloud>, Eigen::MatrixXi>
119 const Eigen::Vector3d &min_bound,
120 const Eigen::Vector3d &max_bound,
121 bool approximate_class =
false)
const;
139 std::tuple<std::shared_ptr<PointCloud>, std::vector<size_t>>
144 std::tuple<std::shared_ptr<PointCloud>, std::vector<size_t>>
154 bool fast_normal_computation =
true);
160 const Eigen::Vector3d &orientation_reference =
161 Eigen::Vector3d(0.0, 0.0, 1.0));
167 const Eigen::Vector3d &camera_location = Eigen::Vector3d::Zero());
191 std::tuple<std::shared_ptr<TriangleMesh>, std::vector<size_t>>
201 std::tuple<std::shared_ptr<TriangleMesh>, std::vector<size_t>>
203 const double radius)
const;
212 bool print_progress =
false)
const;
223 std::tuple<Eigen::Vector4d, std::vector<size_t>>
SegmentPlane(
224 const double distance_threshold = 0.01,
225 const int ransac_n = 3,
226 const int num_iterations = 100)
const;
238 const Eigen::Matrix4d &extrinsic = Eigen::Matrix4d::Identity(),
239 double depth_scale = 1000.0,
240 double depth_trunc = 1000.0,
249 const Eigen::Matrix4d &extrinsic = Eigen::Matrix4d::Identity());
PointCloud & Clear() override
Clear all elements in the geometry.
Definition: PointCloud.cpp:41
bool OrientNormalsToAlignWithDirection(const Eigen::Vector3d &orientation_reference=Eigen::Vector3d(0.0, 0.0, 1.0))
Definition: EstimateNormals.cpp:302
PointCloud(const std::vector< Eigen::Vector3d > &points)
Definition: PointCloud.h:53
std::vector< Eigen::Vector3d > normals_
Definition: PointCloud.h:259
OrientedBoundingBox GetOrientedBoundingBox() const override
Returns an oriented bounding box of the geometry.
Definition: PointCloud.cpp:64
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.
Definition: Geometry3D.cpp:71
PointCloud & operator+=(const PointCloud &cloud)
Definition: PointCloud.cpp:91
bool OrientNormalsTowardsCameraLocation(const Eigen::Vector3d &camera_location=Eigen::Vector3d::Zero())
Definition: EstimateNormals.cpp:324
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.
Definition: PointCloudSegmentation.cpp:136
PointCloud & Transform(const Eigen::Matrix4d &transformation) override
Apply transformation (4x4 matrix) to the geometry coordinates.
Definition: PointCloud.cpp:68
std::vector< Eigen::Vector3d > colors_
Definition: PointCloud.h:260
bool HasPoints() const
Definition: PointCloud.h:74
std::shared_ptr< PointCloud > CreateFromVoxelGrid(const VoxelGrid &voxel_grid)
Definition: PointCloudFactory.cpp:165
A bounding box oriented along an arbitrary frame of reference.
Definition: BoundingVolume.h:44
std::vector< int > ClusterDBSCAN(double eps, size_t min_points, bool print_progress=false) const
Definition: PointCloudCluster.cpp:42
PointCloud & RemoveNoneFinitePoints(bool remove_nan=true, bool remove_infinite=true)
Definition: PointCloud.cpp:145
PointCloud & Rotate(const Eigen::Matrix3d &R, bool center=true) override
Apply rotation to the geometry coordinates and normals.
Definition: PointCloud.cpp:85
A bounding box that is aligned along the coordinate axes.
Definition: BoundingVolume.h:130
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
Definition: DownSample.cpp:298
std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > RemoveStatisticalOutliers(size_t nb_neighbors, double std_ratio) const
Definition: DownSample.cpp:425
PointCloud & NormalizeNormals()
Definition: PointCloud.h:84
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition: Image.h:53
std::shared_ptr< PointCloud > VoxelDownSample(double voxel_size) const
Definition: DownSample.cpp:254
PointCloud()
Definition: PointCloud.h:52
The base geometry class.
Definition: Geometry.h:35
std::shared_ptr< PointCloud > SelectDownSample(const std::vector< size_t > &indices, bool invert=false) const
Definition: DownSample.cpp:145
double voxel_size
Definition: FilePLY.cpp:285
Definition: KDTreeSearchParam.h:53
Eigen::Vector3d GetCenter() const override
Returns the center of the geometry coordinates.
Definition: PointCloud.cpp:58
The base geometry class for 3D geometries.
Definition: Geometry3D.h:46
std::shared_ptr< PointCloud > UniformDownSample(size_t every_k_points) const
Definition: DownSample.cpp:364
std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > HiddenPointRemoval(const Eigen::Vector3d &camera_location, const double radius) const
Definition: PointCloud.cpp:254
std::tuple< std::shared_ptr< PointCloud >, std::vector< size_t > > RemoveRadiusOutliers(size_t nb_points, double search_radius) const
Definition: DownSample.cpp:396
PointCloud & Scale(const double scale, bool center=true) override
Apply scaling to the geometry coordinates.
Definition: PointCloud.cpp:80
PointCloud & PaintUniformColor(const Eigen::Vector3d &color)
Assigns each point in the PointCloud the same color.
Definition: PointCloud.h:92
GeometryType
Specifies possible geometry types.
Definition: Geometry.h:40
int points
Definition: FilePCD.cpp:70
~PointCloud() override
Definition: PointCloud.h:55
std::vector< Eigen::Vector3d > points_
Definition: PointCloud.h:258
std::tuple< Eigen::Vector3d, Eigen::Matrix3d > ComputeMeanAndCovariance() const
Definition: PointCloud.cpp:175
Eigen::Vector3d GetMinBound() const override
Returns min bounds for geometry coordinates.
Definition: PointCloud.cpp:50
Definition: PointCloud.h:50
static std::shared_ptr< PointCloud > CreateFromRGBDImage(const RGBDImage &image, const camera::PinholeCameraIntrinsic &intrinsic, const Eigen::Matrix4d &extrinsic=Eigen::Matrix4d::Identity())
Definition: PointCloudFactory.cpp:144
std::vector< double > ComputeMahalanobisDistance() const
Definition: PointCloud.cpp:211
bool HasNormals() const
Definition: PointCloud.h:76
bool IsEmpty() const override
Returns true iff the geometry is empty.
Definition: PointCloud.cpp:48
Contains the pinhole camera intrinsic parameters.
Definition: PinholeCameraIntrinsic.h:51
PointCloud & Translate(const Eigen::Vector3d &translation, bool relative=true) override
Apply translation to the geometry coordinates.
Definition: PointCloud.cpp:74
std::vector< double > ComputePointCloudDistance(const PointCloud &target)
Definition: PointCloud.cpp:122
bool EstimateNormals(const KDTreeSearchParam &search_param=KDTreeSearchParamKNN(), bool fast_normal_computation=true)
Definition: EstimateNormals.cpp:265
Definition: RGBDImage.h:43
Definition: PinholeCameraIntrinsic.cpp:34
bool HasColors() const
Definition: PointCloud.h:80
Eigen::Vector3d GetMaxBound() const override
Returns max bounds for geometry coordinates.
Definition: PointCloud.cpp:54
Definition: KDTreeSearchParam.h:32
std::shared_ptr< PointCloud > Crop(const AxisAlignedBoundingBox &bbox) const
Definition: DownSample.cpp:376
Definition: VoxelGrid.h:65
std::vector< double > ComputeNearestNeighborDistance() const
Definition: PointCloud.cpp:227
AxisAlignedBoundingBox GetAxisAlignedBoundingBox() const override
Returns an axis-aligned bounding box of the geometry.
Definition: PointCloud.cpp:60
PointCloud operator+(const PointCloud &cloud) const
Definition: PointCloud.cpp:118
std::tuple< std::shared_ptr< TriangleMesh >, std::vector< size_t > > ComputeConvexHull() const
Function that computes the convex hull of the point cloud using qhull.
Definition: PointCloud.cpp:249
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)
Definition: PointCloudFactory.cpp:121