NASA Astrobee Robot Software
0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
|
OrganizedNeighbor is a class for optimized nearest neigbhor search in organized point clouds. More...
#include <organized_neighbor2.h>
Classes | |
struct | Entry |
Public Types | |
typedef pcl::PointCloud< PointT > | PointCloud |
typedef boost::shared_ptr< PointCloud > | PointCloudPtr |
typedef boost::shared_ptr< const PointCloud > | PointCloudConstPtr |
typedef boost::shared_ptr< const std::vector< int > > | IndicesConstPtr |
typedef boost::shared_ptr< pcl::search::OrganizedNeighbor2< PointT > > | Ptr |
typedef boost::shared_ptr< const pcl::search::OrganizedNeighbor2< PointT > > | ConstPtr |
Public Member Functions | |
OrganizedNeighbor2 (bool sorted_results=false) | |
Constructor. More... | |
virtual | ~OrganizedNeighbor2 () |
Empty deconstructor. More... | |
virtual void | setInputCloud (const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) |
Provide a pointer to the input data set, if user has focal length he must set it before calling this. More... | |
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. More... | |
int | nearestKSearch (const PointT &p_q, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances) const |
Search for the k-nearest neighbors for a given query point. More... | |
Eigen::Vector2f | projectPoint (const Eigen::Vector3f &p) const |
projects a point into the image More... | |
void | setIntrinsicsMatrix (const Eigen::Matrix3d &intrinsics_matrix) |
Protected Member Functions | |
bool | testPoint (const PointT &query, unsigned k, std::priority_queue< Entry > &queue, unsigned index) const |
test if point given by index is among the k NN in results to the query point. More... | |
void | clipRange (int &begin, int &end, int min, int max) const |
void | getProjectedRadiusSearchBox (const PointT &point, float squared_radius, unsigned &minX, unsigned &minY, unsigned &maxX, unsigned &maxY) const |
Obtain a search box in 2D from a sphere with a radius in 3D. More... | |
Protected Attributes | |
Eigen::Matrix3f | intrinsics_matrix_ |
the intrinsics matrix. More... | |
Eigen::Matrix3f | KR_KRT_ |
std::vector< unsigned char > | mask_ |
mask, indicating whether the point was in the indices list or not. More... | |
OrganizedNeighbor is a class for optimized nearest neigbhor search in organized point clouds.
typedef boost::shared_ptr<const pcl::search::OrganizedNeighbor2<PointT> > pcl::search::OrganizedNeighbor2< PointT >::ConstPtr |
typedef boost::shared_ptr<const std::vector<int> > pcl::search::OrganizedNeighbor2< PointT >::IndicesConstPtr |
typedef pcl::PointCloud<PointT> pcl::search::OrganizedNeighbor2< PointT >::PointCloud |
typedef boost::shared_ptr<const PointCloud> pcl::search::OrganizedNeighbor2< PointT >::PointCloudConstPtr |
typedef boost::shared_ptr<PointCloud> pcl::search::OrganizedNeighbor2< PointT >::PointCloudPtr |
typedef boost::shared_ptr<pcl::search::OrganizedNeighbor2<PointT> > pcl::search::OrganizedNeighbor2< PointT >::Ptr |
|
inlineexplicit |
Constructor.
[in] | sorted_results | whether the results should be return sorted in ascending order on the distances or not. This applies only for radius search, since knn always returns sorted resutls |
|
inlinevirtual |
Empty deconstructor.
|
inlineprotected |
|
protected |
Obtain a search box in 2D from a sphere with a radius in 3D.
[in] | point | the query point (sphere center) |
[in] | squared_radius | the squared sphere radius |
[out] | minX | the min X box coordinate |
[out] | minY | the min Y box coordinate |
[out] | maxX | the max X box coordinate |
[out] | maxY | the max Y box coordinate |
int pcl::search::OrganizedNeighbor2< PointT >::nearestKSearch | ( | const PointT & | p_q, |
int | k, | ||
std::vector< int > & | k_indices, | ||
std::vector< float > & | k_sqr_distances | ||
) | const |
Search for the k-nearest neighbors for a given query point.
[in] | p_q | the given query point (setInputCloud must be given a-priori!) |
[in] | k | the number of neighbors to search for (used only if horizontal and vertical window not given already!) |
[out] | k_indices | the resultant point indices (must be resized to k beforehand!) |
[out] | k_sqr_distances |
Eigen::Vector2f pcl::search::OrganizedNeighbor2< PointT >::projectPoint | ( | const Eigen::Vector3f & | p | ) | const |
projects a point into the image
[in] | p | point in 3D World Coordinate Frame to be projected onto the image plane |
int pcl::search::OrganizedNeighbor2< PointT >::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.
[in] | p_q | 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. |
|
inlinevirtual |
Provide a pointer to the input data set, if user has focal length he must set it before calling this.
[in] | cloud | the const boost shared pointer to a PointCloud message |
[in] | indices | the const boost shared pointer to PointIndices |
|
inline |
|
inlineprotected |
test if point given by index is among the k NN in results to the query point.
[in] | query | query point |
[in] | k | number of maximum nn interested in |
[in] | queue | priority queue with k NN |
[in] | index | index on point to be tested |
|
protected |
the intrinsics matrix.
|
protected |
|
protected |
mask, indicating whether the point was in the indices list or not.