Point Cloud Library (PCL)
1.7.0
|
#include <pcl/recognition/ransac_based/model_library.h>
Classes | |
class | Model |
Stores some information about the model. More... | |
Public Types | |
typedef pcl::PointCloud < pcl::PointXYZ > | PointCloudIn |
typedef pcl::PointCloud < pcl::Normal > | PointCloudN |
typedef std::list< std::pair < const ORROctree::Node::Data *, const ORROctree::Node::Data * > > | node_data_pair_list |
typedef std::map< const Model *, node_data_pair_list > | HashTableCell |
typedef VoxelStructure < HashTableCell, float > | HashTable |
Public Member Functions | |
ModelLibrary (float pair_width, float voxel_size, float max_coplanarity_angle=3.0f *AUX_DEG_TO_RADIANS) | |
This class is used by 'ObjRecRANSAC' to maintain the object models to be recognized. | |
virtual | ~ModelLibrary () |
void | removeAllModels () |
Removes all models from the library and clears the hash table. | |
void | setMaxCoplanarityAngleDegrees (float max_coplanarity_angle_degrees) |
This is a threshold. | |
void | ignoreCoplanarPointPairsOn () |
Call this method in order NOT to add co-planar point pairs to the hash table. | |
void | ignoreCoplanarPointPairsOff () |
Call this method in order to add all point pairs (co-planar as well) to the hash table. | |
bool | addModel (const PointCloudIn &points, const PointCloudN &normals, const std::string &object_name, float frac_of_points_for_registration, void *user_data=NULL) |
Adds a model to the hash table. | |
const HashTable & | getHashTable () const |
Returns the hash table built by this instance. | |
const Model * | getModel (const std::string &name) const |
const std::map< std::string, Model * > & | getModels () const |
Protected Member Functions | |
void | clear () |
Removes all models from the library and destroys the hash table. | |
bool | addToHashTable (Model *model, const ORROctree::Node::Data *data1, const ORROctree::Node::Data *data2) |
Returns true if the oriented point pair was added to the hash table and false otherwise. | |
Protected Attributes | |
float | pair_width_ |
float | voxel_size_ |
float | max_coplanarity_angle_ |
bool | ignore_coplanar_opps_ |
std::map< std::string, Model * > | models_ |
HashTable | hash_table_ |
int | num_of_cells_ [3] |
Definition at line 59 of file model_library.h.
typedef VoxelStructure<HashTableCell, float> pcl::recognition::ModelLibrary::HashTable |
Definition at line 176 of file model_library.h.
typedef std::map<const Model*, node_data_pair_list> pcl::recognition::ModelLibrary::HashTableCell |
Definition at line 175 of file model_library.h.
typedef std::list<std::pair<const ORROctree::Node::Data*, const ORROctree::Node::Data*> > pcl::recognition::ModelLibrary::node_data_pair_list |
Definition at line 174 of file model_library.h.
Definition at line 62 of file model_library.h.
Definition at line 63 of file model_library.h.
pcl::recognition::ModelLibrary::ModelLibrary | ( | float | pair_width, |
float | voxel_size, | ||
float | max_coplanarity_angle = 3.0f *AUX_DEG_TO_RADIANS |
||
) |
This class is used by 'ObjRecRANSAC' to maintain the object models to be recognized.
Normally, you do not need to use this class directly.
virtual pcl::recognition::ModelLibrary::~ModelLibrary | ( | ) | [inline, virtual] |
Definition at line 182 of file model_library.h.
bool pcl::recognition::ModelLibrary::addModel | ( | const PointCloudIn & | points, |
const PointCloudN & | normals, | ||
const std::string & | object_name, | ||
float | frac_of_points_for_registration, | ||
void * | user_data = NULL |
||
) |
Adds a model to the hash table.
[in] | points | represents the model to be added. |
[in] | normals | are the normals at the model points. |
[in] | object_name | is the unique name of the object to be added. |
[in] | num_points_for_registration | is the number of points used for fast ICP registration prior to hypothesis testing |
[in] | user_data | is a pointer to some data (can be NULL) |
Returns true if model successfully added and false otherwise (e.g., if object_name is not unique).
bool pcl::recognition::ModelLibrary::addToHashTable | ( | Model * | model, |
const ORROctree::Node::Data * | data1, | ||
const ORROctree::Node::Data * | data2 | ||
) | [protected] |
Returns true if the oriented point pair was added to the hash table and false otherwise.
void pcl::recognition::ModelLibrary::clear | ( | ) | [protected] |
Removes all models from the library and destroys the hash table.
This method should be called upon destroying this object.
Referenced by pcl::recognition::ObjRecRANSAC::clearTestData().
const HashTable& pcl::recognition::ModelLibrary::getHashTable | ( | ) | const [inline] |
Returns the hash table built by this instance.
Definition at line 231 of file model_library.h.
const Model* pcl::recognition::ModelLibrary::getModel | ( | const std::string & | name | ) | const [inline] |
Definition at line 237 of file model_library.h.
const std::map<std::string,Model*>& pcl::recognition::ModelLibrary::getModels | ( | ) | const [inline] |
Definition at line 247 of file model_library.h.
void pcl::recognition::ModelLibrary::ignoreCoplanarPointPairsOff | ( | ) | [inline] |
Call this method in order to add all point pairs (co-planar as well) to the hash table.
The default behavior is ignoring co-planar points on.
Definition at line 211 of file model_library.h.
void pcl::recognition::ModelLibrary::ignoreCoplanarPointPairsOn | ( | ) | [inline] |
Call this method in order NOT to add co-planar point pairs to the hash table.
The default behavior is ignoring co-planar points on.
Definition at line 203 of file model_library.h.
Removes all models from the library and clears the hash table.
void pcl::recognition::ModelLibrary::setMaxCoplanarityAngleDegrees | ( | float | max_coplanarity_angle_degrees | ) | [inline] |
This is a threshold.
The larger the value the more point pairs will be considered as co-planar and will be ignored in the off-line model pre-processing and in the online recognition phases. This makes sense only if "ignore co-planar points" is on. Call this method before calling addModel.
Definition at line 195 of file model_library.h.
HashTable pcl::recognition::ModelLibrary::hash_table_ [protected] |
Definition at line 268 of file model_library.h.
bool pcl::recognition::ModelLibrary::ignore_coplanar_opps_ [protected] |
Definition at line 265 of file model_library.h.
float pcl::recognition::ModelLibrary::max_coplanarity_angle_ [protected] |
Definition at line 264 of file model_library.h.
std::map<std::string,Model*> pcl::recognition::ModelLibrary::models_ [protected] |
Definition at line 267 of file model_library.h.
int pcl::recognition::ModelLibrary::num_of_cells_[3] [protected] |
Definition at line 269 of file model_library.h.
float pcl::recognition::ModelLibrary::pair_width_ [protected] |
Definition at line 262 of file model_library.h.
float pcl::recognition::ModelLibrary::voxel_size_ [protected] |
Definition at line 263 of file model_library.h.