Point Cloud Library (PCL)
1.3.1
|
Grid projection surface reconstruction method. More...
#include <pcl/surface/grid_projection.h>
Classes | |
struct | Leaf |
Data leaf. More... | |
Public Types | |
typedef pcl::PointCloud < PointNT >::Ptr | PointCloudPtr |
typedef pcl::KdTree< PointNT > | KdTree |
typedef pcl::KdTree< PointNT >::Ptr | KdTreePtr |
typedef boost::unordered_map < int, Leaf, boost::hash< int > , std::equal_to< int > , Eigen::aligned_allocator < int > > | HashMap |
Public Member Functions | |
GridProjection () | |
Constructor. | |
GridProjection (double in_resolution) | |
Constructor. | |
~GridProjection () | |
Destructor. | |
void | performReconstruction (pcl::PolygonMesh &output) |
Create the surface. | |
void | setResolution (double resolution) |
Set the size of the grid cell. | |
double | getResolution () const |
void | setPaddingSize (int padding_size) |
When averaging the vectors, we find the union of all the input data points within the padding area,and do a weighted average. | |
int | getPaddingSize () const |
void | setNearestNeighborNum (int k) |
Set this only when using the k nearest neighbors search instead of finding the point union. | |
int | getNearestNeighborNum () const |
void | setMaxBinarySearchLevel (int max_binary_search_level) |
Binary search is used in projection. | |
int | getMaxBinarySearchLevel () const |
const HashMap & | getCellHashMap () const |
const std::vector < Eigen::Vector3f, Eigen::aligned_allocator < Eigen::Vector3f > > & | getVectorAtDataPoint () const |
const std::vector < Eigen::Vector4f, Eigen::aligned_allocator < Eigen::Vector4f > > & | getSurface () const |
void | getBoundingBox () |
Get the bounding box for the input data points, also calculating the cell size, and the gaussian scale factor. | |
void | reconstruct (pcl::PolygonMesh &output) |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> | |
void | setSearchMethod (const KdTreePtr &tree) |
Provide a pointer to the search object. | |
KdTreePtr | getSearchMethod () |
Get a pointer to the search method used. |
Grid projection surface reconstruction method.
typedef boost::unordered_map<int, Leaf, boost::hash<int>, std::equal_to<int>, Eigen::aligned_allocator<int> > pcl::GridProjection::HashMap |
Definition at line 96 of file grid_projection.h.
typedef pcl::KdTree<PointNT> pcl::GridProjection::KdTree |
Reimplemented from pcl::SurfaceReconstruction< PointNT >.
Definition at line 85 of file grid_projection.h.
typedef pcl::KdTree<PointNT>::Ptr pcl::GridProjection::KdTreePtr |
Reimplemented from pcl::SurfaceReconstruction< PointNT >.
Definition at line 86 of file grid_projection.h.
typedef pcl::PointCloud<PointNT>::Ptr pcl::GridProjection::PointCloudPtr |
Definition at line 83 of file grid_projection.h.
pcl::GridProjection::GridProjection | ( | ) |
Constructor.
Definition at line 49 of file grid_projection.hpp.
pcl::GridProjection::GridProjection | ( | double | in_resolution | ) |
Constructor.
in_resolution | set the resolution of the grid |
Definition at line 55 of file grid_projection.hpp.
pcl::GridProjection::~GridProjection | ( | ) |
Destructor.
Definition at line 61 of file grid_projection.hpp.
void pcl::GridProjection::getBoundingBox | ( | ) |
Get the bounding box for the input data points, also calculating the cell size, and the gaussian scale factor.
Definition at line 82 of file grid_projection.hpp.
const HashMap& pcl::GridProjection::getCellHashMap | ( | ) | const [inline] |
Definition at line 188 of file grid_projection.h.
int pcl::GridProjection::getMaxBinarySearchLevel | ( | ) | const [inline] |
Definition at line 181 of file grid_projection.h.
int pcl::GridProjection::getNearestNeighborNum | ( | ) | const [inline] |
Definition at line 166 of file grid_projection.h.
int pcl::GridProjection::getPaddingSize | ( | ) | const [inline] |
Definition at line 151 of file grid_projection.h.
double pcl::GridProjection::getResolution | ( | ) | const [inline] |
Definition at line 131 of file grid_projection.h.
KdTreePtr pcl::SurfaceReconstruction::getSearchMethod | ( | ) | [inline, inherited] |
Get a pointer to the search method used.
Definition at line 86 of file reconstruction.h.
const std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >& pcl::GridProjection::getSurface | ( | ) | const [inline] |
Definition at line 200 of file grid_projection.h.
const std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> >& pcl::GridProjection::getVectorAtDataPoint | ( | ) | const [inline] |
Definition at line 194 of file grid_projection.h.
void pcl::GridProjection::performReconstruction | ( | pcl::PolygonMesh & | output | ) | [virtual] |
Create the surface.
The 1st step is filling the padding, so that all the cells in the padding area are in the hash map. The 2nd step is store the vector, and projected point. The 3rd step is finding all the edges intersects the surface, and creating surface.
output | the resultant polygonal mesh |
Implements pcl::SurfaceReconstruction< PointNT >.
Definition at line 610 of file grid_projection.hpp.
void pcl::SurfaceReconstruction::reconstruct | ( | pcl::PolygonMesh & | output | ) | [inherited] |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>
output | the resultant reconstructed surface model |
void pcl::GridProjection::setMaxBinarySearchLevel | ( | int | max_binary_search_level | ) | [inline] |
Binary search is used in projection.
given a point x, we find another point which is 3*cell_size_ far away from x. Then we do a binary search between these two points to find where the projected point should be.
Definition at line 176 of file grid_projection.h.
void pcl::GridProjection::setNearestNeighborNum | ( | int | k | ) | [inline] |
Set this only when using the k nearest neighbors search instead of finding the point union.
k | The number of nearest neighbors we are looking for |
Definition at line 161 of file grid_projection.h.
void pcl::GridProjection::setPaddingSize | ( | int | padding_size | ) | [inline] |
When averaging the vectors, we find the union of all the input data points within the padding area,and do a weighted average.
Say if the padding size is 1, when we process cell (x,y,z), we will find union of input data points from (x-1) to (x+1), (y-1) to (y+1), (z-1) to (z+1)(in total, 27 cells). In this way, even the cells itself doesnt contain any data points, we will stil process it because there are data points in the padding area. This can help us fix holes which is smaller than the padding size.
padding_size | The num of padding cells we want to create |
Definition at line 146 of file grid_projection.h.
void pcl::GridProjection::setResolution | ( | double | resolution | ) | [inline] |
Set the size of the grid cell.
resolution | the size of the grid cell |
Definition at line 125 of file grid_projection.h.
void pcl::SurfaceReconstruction::setSearchMethod | ( | const KdTreePtr & | tree | ) | [inline, inherited] |
Provide a pointer to the search object.
tree | a pointer to the spatial search object. |
Definition at line 79 of file reconstruction.h.