Point Cloud Library (PCL)  1.9.1-dev
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::recognition::ModelLibrary Class Reference

#include <pcl/recognition/ransac_based/model_library.h>

Classes

class  Model
 Stores some information about the model. More...
 

Public Types

typedef pcl::PointCloud< pcl::PointXYZPointCloudIn
 
typedef pcl::PointCloud< pcl::NormalPointCloudN
 
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_listHashTableCell
 
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. More...
 
virtual ~ModelLibrary ()
 
void removeAllModels ()
 Removes all models from the library and clears the hash table. More...
 
void setMaxCoplanarityAngleDegrees (float max_coplanarity_angle_degrees)
 This is a threshold. More...
 
void ignoreCoplanarPointPairsOn ()
 Call this method in order NOT to add co-planar point pairs to the hash table. More...
 
void ignoreCoplanarPointPairsOff ()
 Call this method in order to add all point pairs (co-planar as well) to the hash table. More...
 
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. More...
 
const HashTablegetHashTable () const
 Returns the hash table built by this instance. More...
 
const ModelgetModel (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. More...
 
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. More...
 

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]
 

Detailed Description

Definition at line 58 of file model_library.h.

Member Typedef Documentation

Definition at line 175 of file model_library.h.

Definition at line 174 of file model_library.h.

Definition at line 173 of file model_library.h.

Definition at line 61 of file model_library.h.

Definition at line 62 of file model_library.h.

Constructor & Destructor Documentation

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 ( )
inlinevirtual

Definition at line 181 of file model_library.h.

Member Function Documentation

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.

Parameters
[in]pointsrepresents the model to be added.
[in]normalsare the normals at the model points.
[in]object_nameis the unique name of the object to be added.
[in]frac_of_points_for_registrationis the number of points used for fast ICP registration prior to hypothesis testing
[in]user_datais 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.

const HashTable& pcl::recognition::ModelLibrary::getHashTable ( ) const
inline

Returns the hash table built by this instance.

Definition at line 230 of file model_library.h.

const Model* pcl::recognition::ModelLibrary::getModel ( const std::string &  name) const
inline

Definition at line 236 of file model_library.h.

const std::map<std::string,Model*>& pcl::recognition::ModelLibrary::getModels ( ) const
inline

Definition at line 246 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 210 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 202 of file model_library.h.

void pcl::recognition::ModelLibrary::removeAllModels ( )

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 194 of file model_library.h.

Member Data Documentation

HashTable pcl::recognition::ModelLibrary::hash_table_
protected

Definition at line 267 of file model_library.h.

bool pcl::recognition::ModelLibrary::ignore_coplanar_opps_
protected

Definition at line 264 of file model_library.h.

float pcl::recognition::ModelLibrary::max_coplanarity_angle_
protected

Definition at line 263 of file model_library.h.

std::map<std::string,Model*> pcl::recognition::ModelLibrary::models_
protected

Definition at line 266 of file model_library.h.

int pcl::recognition::ModelLibrary::num_of_cells_[3]
protected

Definition at line 268 of file model_library.h.

float pcl::recognition::ModelLibrary::pair_width_
protected

Definition at line 261 of file model_library.h.

float pcl::recognition::ModelLibrary::voxel_size_
protected

Definition at line 262 of file model_library.h.


The documentation for this class was generated from the following file: