|
Point Cloud Library (PCL)
1.6.0
|
search::Octree is a wrapper class which implements nearest neighbor search operations based on the pcl::octree::Octree structure. More...
#include <pcl/search/octree.h>


Public Types | |
| typedef boost::shared_ptr < std::vector< int > > | IndicesPtr |
| typedef boost::shared_ptr < const std::vector< int > > | IndicesConstPtr |
| typedef pcl::PointCloud< PointT > | PointCloud |
| typedef boost::shared_ptr < PointCloud > | PointCloudPtr |
| typedef boost::shared_ptr < const PointCloud > | PointCloudConstPtr |
| typedef boost::shared_ptr < pcl::octree::OctreePointCloudSearch < PointT, LeafTWrap, BranchTWrap > > | Ptr |
| typedef boost::shared_ptr < const pcl::octree::OctreePointCloudSearch < PointT, LeafTWrap, BranchTWrap > > | ConstPtr |
Public Member Functions | |
| Octree (const double resolution) | |
| Octree constructor. | |
| virtual | ~Octree () |
| Empty Destructor. | |
| void | setInputCloud (const PointCloudConstPtr &cloud) |
| Provide a pointer to the input dataset. | |
| void | setInputCloud (const PointCloudConstPtr &cloud, const IndicesConstPtr &indices) |
| Provide a pointer to the input dataset. | |
| int | nearestKSearch (const PointCloud &cloud, int index, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances) const |
| Search for the k-nearest neighbors for the given query point. | |
| int | nearestKSearch (const PointT &point, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances) const |
| Search for the k-nearest neighbors for the given query point. | |
| int | nearestKSearch (int index, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances) const |
| Search for the k-nearest neighbors for the given query point (zero-copy). | |
| int | radiusSearch (const PointCloud &cloud, int index, double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
| search for all neighbors of query point that are within a given radius. | |
| int | radiusSearch (const PointT &p_q, double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
| search for all neighbors of query point that are within a given radius. | |
| int | radiusSearch (int index, double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
| search for all neighbors of query point that are within a given radius. | |
| void | approxNearestSearch (const PointCloudConstPtr &cloud, int query_index, int &result_index, float &sqr_distance) |
| Search for approximate nearest neighbor at the query point. | |
| void | approxNearestSearch (const PointT &p_q, int &result_index, float &sqr_distance) |
| Search for approximate nearest neighbor at the query point. | |
| void | approxNearestSearch (int query_index, int &result_index, float &sqr_distance) |
| Search for approximate nearest neighbor at the query point. | |
| virtual const std::string & | getName () const |
| returns the search method name | |
| virtual void | setSortedResults (bool sorted) |
| sets whether the results should be sorted (ascending in the distance) or not | |
| virtual void | setInputCloud (const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) |
| Pass the input dataset that the search will be performed on. | |
| virtual PointCloudConstPtr | getInputCloud () const |
| Get a pointer to the input point cloud dataset. | |
| virtual IndicesConstPtr | getIndices () const |
| Get a pointer to the vector of indices used. | |
| virtual void | nearestKSearch (const PointCloud &cloud, const std::vector< int > &indices, int k, std::vector< std::vector< int > > &k_indices, std::vector< std::vector< float > > &k_sqr_distances) const |
| Search for the k-nearest neighbors for the given query point. | |
| template<typename PointTDiff > | |
| int | nearestKSearchT (const PointTDiff &point, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances) const |
| Search for k-nearest neighbors for the given query point. | |
| template<typename PointTDiff > | |
| void | nearestKSearchT (const pcl::PointCloud< PointTDiff > &cloud, const std::vector< int > &indices, int k, std::vector< std::vector< int > > &k_indices, std::vector< std::vector< float > > &k_sqr_distances) const |
| Search for the k-nearest neighbors for the given query point. | |
| virtual void | radiusSearch (const PointCloud &cloud, const std::vector< int > &indices, double radius, std::vector< std::vector< int > > &k_indices, std::vector< std::vector< float > > &k_sqr_distances, unsigned int max_nn=0) const |
| Search for all the nearest neighbors of the query point in a given radius. | |
| template<typename PointTDiff > | |
| int | radiusSearchT (const PointTDiff &point, double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
| Search for all the nearest neighbors of the query point in a given radius. | |
| template<typename PointTDiff > | |
| void | radiusSearchT (const pcl::PointCloud< PointTDiff > &cloud, const std::vector< int > &indices, double radius, std::vector< std::vector< int > > &k_indices, std::vector< std::vector< float > > &k_sqr_distances, unsigned int max_nn=0) const |
| Search for all the nearest neighbors of the query points in a given radius. | |
Public Attributes | |
| Ptr | tree_ |
search::Octree is a wrapper class which implements nearest neighbor search operations based on the pcl::octree::Octree structure.
The octree pointcloud class needs to be initialized with its voxel resolution. Its bounding box is automatically adjusted according to the pointcloud dimension or it can be predefined. Note: The tree depth equates to the resolution and the bounding box dimensions of the octree.
| typedef boost::shared_ptr<const pcl::octree::OctreePointCloudSearch<PointT, LeafTWrap, BranchTWrap> > pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::ConstPtr |
Reimplemented from pcl::search::Search< PointT >.
| typedef boost::shared_ptr<const std::vector<int> > pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::IndicesConstPtr |
Reimplemented from pcl::search::Search< PointT >.
| typedef boost::shared_ptr<std::vector<int> > pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::IndicesPtr |
Reimplemented from pcl::search::Search< PointT >.
| typedef pcl::PointCloud<PointT> pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::PointCloud |
Reimplemented from pcl::search::Search< PointT >.
| typedef boost::shared_ptr<const PointCloud> pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::PointCloudConstPtr |
Reimplemented from pcl::search::Search< PointT >.
| typedef boost::shared_ptr<PointCloud> pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::PointCloudPtr |
Reimplemented from pcl::search::Search< PointT >.
| typedef boost::shared_ptr<pcl::octree::OctreePointCloudSearch<PointT, LeafTWrap, BranchTWrap> > pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::Ptr |
Reimplemented from pcl::search::Search< PointT >.
| pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::Octree | ( | const double | resolution | ) | [inline] |
| virtual pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::~Octree | ( | ) | [inline, virtual] |
| void pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::approxNearestSearch | ( | const PointCloudConstPtr & | cloud, |
| int | query_index, | ||
| int & | result_index, | ||
| float & | sqr_distance | ||
| ) | [inline] |
Search for approximate nearest neighbor at the query point.
| [in] | cloud | the point cloud data |
| [in] | query_index | the index in cloud representing the query point |
| [out] | result_index | the resultant index of the neighbor point |
| [out] | sqr_distance | the resultant squared distance to the neighboring point |
| void pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::approxNearestSearch | ( | const PointT & | p_q, |
| int & | result_index, | ||
| float & | sqr_distance | ||
| ) | [inline] |
| void pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::approxNearestSearch | ( | int | query_index, |
| int & | result_index, | ||
| float & | sqr_distance | ||
| ) | [inline] |
Search for approximate nearest neighbor at the query point.
| query_index | index representing the query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector. |
| result_index | the resultant index of the neighbor point |
| sqr_distance | the resultant squared distance to the neighboring point |
| virtual IndicesConstPtr pcl::search::Search< PointT >::getIndices | ( | ) | const [inline, virtual, inherited] |
| virtual PointCloudConstPtr pcl::search::Search< PointT >::getInputCloud | ( | ) | const [inline, virtual, inherited] |
| virtual const std::string& pcl::search::Search< PointT >::getName | ( | ) | const [inline, virtual, inherited] |
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::nearestKSearch | ( | const PointCloud & | cloud, |
| int | index, | ||
| int | k, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances | ||
| ) | const [inline, virtual] |
Search for the k-nearest neighbors for the given query point.
| [in] | cloud | the point cloud data |
| [in] | index | the index in cloud representing the query point |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
Reimplemented from pcl::search::Search< PointT >.
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::nearestKSearch | ( | const PointT & | point, |
| int | k, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances | ||
| ) | const [inline, virtual] |
Search for the k-nearest neighbors for the given query point.
| [in] | point | the given query point |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
Implements pcl::search::Search< PointT >.
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::nearestKSearch | ( | int | index, |
| int | k, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances | ||
| ) | const [inline, virtual] |
Search for the k-nearest neighbors for the given query point (zero-copy).
| [in] | index | the index representing the query point in the dataset given by setInputCloud if indices were given in setInputCloud, index will be the position in the indices vector |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
Reimplemented from pcl::search::Search< PointT >.
| virtual void pcl::search::Search< PointT >::nearestKSearch | ( | const PointCloud & | cloud, |
| const std::vector< int > & | indices, | ||
| int | k, | ||
| std::vector< std::vector< int > > & | k_indices, | ||
| std::vector< std::vector< float > > & | k_sqr_distances | ||
| ) | const [inline, virtual, inherited] |
Search for the k-nearest neighbors for the given query point.
| [in] | cloud | the point cloud data |
| [in] | indices | a vector of point cloud indices to query for nearest neighbors |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points, k_indices[i] corresponds to the neighbors of the query point i |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points, k_sqr_distances[i] corresponds to the neighbors of the query point i |
| int pcl::search::Search< PointT >::nearestKSearchT | ( | const PointTDiff & | point, |
| int | k, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances | ||
| ) | const [inline, inherited] |
Search for k-nearest neighbors for the given query point.
This method accepts a different template parameter for the point type.
| [in] | point | the given query point |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
| void pcl::search::Search< PointT >::nearestKSearchT | ( | const pcl::PointCloud< PointTDiff > & | cloud, |
| const std::vector< int > & | indices, | ||
| int | k, | ||
| std::vector< std::vector< int > > & | k_indices, | ||
| std::vector< std::vector< float > > & | k_sqr_distances | ||
| ) | const [inline, inherited] |
Search for the k-nearest neighbors for the given query point.
Use this method if the query points are of a different type than the points in the data set (e.g. PointXYZRGBA instead of PointXYZ).
| [in] | cloud | the point cloud data |
| [in] | indices | a vector of point cloud indices to query for nearest neighbors |
| [in] | k | the number of neighbors to search for |
| [out] | k_indices | the resultant indices of the neighboring points, k_indices[i] corresponds to the neighbors of the query point i |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points, k_sqr_distances[i] corresponds to the neighbors of the query point i |
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::radiusSearch | ( | const PointCloud & | cloud, |
| int | index, | ||
| double | radius, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, virtual] |
search for all neighbors of query point that are within a given radius.
| cloud | the point cloud data |
| index | the index in cloud representing the query point |
| radius | the radius of the sphere bounding all of p_q's neighbors |
| k_indices | the resultant indices of the neighboring points |
| k_sqr_distances | the resultant squared distances to the neighboring points |
| max_nn | if given, bounds the maximum returned neighbors to this value |
Reimplemented from pcl::search::Search< PointT >.
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::radiusSearch | ( | const PointT & | p_q, |
| double | radius, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, virtual] |
search for all neighbors of query point that are within a given radius.
| p_q | the given query point |
| radius | the radius of the sphere bounding all of p_q's neighbors |
| k_indices | the resultant indices of the neighboring points |
| k_sqr_distances | the resultant squared distances to the neighboring points |
| max_nn | if given, bounds the maximum returned neighbors to this value |
Implements pcl::search::Search< PointT >.
| int pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::radiusSearch | ( | int | index, |
| double | radius, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, virtual] |
search for all neighbors of query point that are within a given radius.
| index | index representing the query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector |
| radius | radius of the sphere bounding all of p_q's neighbors |
| k_indices | the resultant indices of the neighboring points |
| k_sqr_distances | the resultant squared distances to the neighboring points |
| max_nn | if given, bounds the maximum returned neighbors to this value |
Reimplemented from pcl::search::Search< PointT >.
| virtual void pcl::search::Search< PointT >::radiusSearch | ( | const PointCloud & | cloud, |
| const std::vector< int > & | indices, | ||
| double | radius, | ||
| std::vector< std::vector< int > > & | k_indices, | ||
| std::vector< std::vector< float > > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, virtual, inherited] |
Search for all the nearest neighbors of the query point in a given radius.
| [in] | cloud | the point cloud data |
| [in] | indices | the indices in cloud. If indices is empty, neighbors will be searched for all points. |
| [in] | radius | the radius of the sphere bounding all of p_q's neighbors |
| [out] | k_indices | the resultant indices of the neighboring points, k_indices[i] corresponds to the neighbors of the query point i |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points, k_sqr_distances[i] corresponds to the neighbors of the query point i |
| [in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
| int pcl::search::Search< PointT >::radiusSearchT | ( | const PointTDiff & | point, |
| double | radius, | ||
| std::vector< int > & | k_indices, | ||
| std::vector< float > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, inherited] |
Search for all the nearest neighbors of the query point in a given radius.
| [in] | point | the given query point |
| [in] | radius | the radius of the sphere bounding all of p_q's neighbors |
| [out] | k_indices | the resultant indices of the neighboring points |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points |
| [in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
| void pcl::search::Search< PointT >::radiusSearchT | ( | const pcl::PointCloud< PointTDiff > & | cloud, |
| const std::vector< int > & | indices, | ||
| double | radius, | ||
| std::vector< std::vector< int > > & | k_indices, | ||
| std::vector< std::vector< float > > & | k_sqr_distances, | ||
| unsigned int | max_nn = 0 |
||
| ) | const [inline, inherited] |
Search for all the nearest neighbors of the query points in a given radius.
| [in] | cloud | the point cloud data |
| [in] | indices | a vector of point cloud indices to query for nearest neighbors |
| [in] | radius | the radius of the sphere bounding all of p_q's neighbors |
| [out] | k_indices | the resultant indices of the neighboring points, k_indices[i] corresponds to the neighbors of the query point i |
| [out] | k_sqr_distances | the resultant squared distances to the neighboring points, k_sqr_distances[i] corresponds to the neighbors of the query point i |
| [in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
| void pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::setInputCloud | ( | const PointCloudConstPtr & | cloud | ) | [inline] |
Provide a pointer to the input dataset.
| [in] | cloud | the const boost shared pointer to a PointCloud message |
| void pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::setInputCloud | ( | const PointCloudConstPtr & | cloud, |
| const IndicesConstPtr & | indices | ||
| ) | [inline] |
Provide a pointer to the input dataset.
| [in] | cloud | the const boost shared pointer to a PointCloud message |
| [in] | indices | the point indices subset that is to be used from cloud |
| virtual void pcl::search::Search< PointT >::setInputCloud | ( | const PointCloudConstPtr & | cloud, |
| const IndicesConstPtr & | indices = IndicesConstPtr () |
||
| ) | [inline, virtual, inherited] |
Pass the input dataset that the search will be performed on.
| [in] | cloud | a const pointer to the PointCloud data |
| [in] | indices | the point indices subset that is to be used from the cloud |
Reimplemented in pcl::search::FlannSearch< PointT, FlannDistance >, and pcl::search::KdTree< PointT >.
| virtual void pcl::search::Search< PointT >::setSortedResults | ( | bool | sorted | ) | [inline, virtual, inherited] |
sets whether the results should be sorted (ascending in the distance) or not
| [in] | sorted | should be true if the results should be sorted by the distance in ascending order. Otherwise the results may be returned in any order. |
Reimplemented in pcl::search::KdTree< PointT >.
| Ptr pcl::search::Octree< PointT, LeafTWrap, BranchTWrap, OctreeT >::tree_ |
1.7.6.1