Point Cloud Library (PCL)
1.9.1
|
Class implementing a 3D correspondence grouping enforcing geometric consistency among feature correspondences. More...
#include <pcl/recognition/cg/geometric_consistency.h>
Public Types | |
typedef pcl::PointCloud < PointModelT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef pcl::CorrespondenceGrouping < PointModelT, PointSceneT > ::SceneCloudConstPtr | SceneCloudConstPtr |
![]() | |
typedef pcl::PointCloud < PointSceneT > | SceneCloud |
typedef SceneCloud::Ptr | SceneCloudPtr |
typedef SceneCloud::ConstPtr | SceneCloudConstPtr |
![]() | |
typedef pcl::PointCloud < PointModelT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef boost::shared_ptr < PointIndices > | PointIndicesPtr |
typedef boost::shared_ptr < PointIndices const > | PointIndicesConstPtr |
Public Member Functions | |
GeometricConsistencyGrouping () | |
Constructor. More... | |
void | setGCThreshold (int threshold) |
Sets the minimum cluster size. More... | |
int | getGCThreshold () const |
Gets the minimum cluster size. More... | |
void | setGCSize (double gc_size) |
Sets the consensus set resolution. More... | |
double | getGCSize () const |
Gets the consensus set resolution. More... | |
bool | recognize (std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > &transformations) |
The main function, recognizes instances of the model into the scene set by the user. More... | |
bool | recognize (std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > &transformations, std::vector< pcl::Correspondences > &clustered_corrs) |
The main function, recognizes instances of the model into the scene set by the user. More... | |
![]() | |
CorrespondenceGrouping () | |
Empty constructor. More... | |
virtual | ~CorrespondenceGrouping () |
destructor. More... | |
virtual void | setSceneCloud (const SceneCloudConstPtr &scene) |
Provide a pointer to the scene dataset. More... | |
SceneCloudConstPtr | getSceneCloud () const |
Getter for the scene dataset. More... | |
virtual void | setModelSceneCorrespondences (const CorrespondencesConstPtr &corrs) |
Provide a pointer to the precomputed correspondences between points in the input dataset and points in the scene dataset. More... | |
CorrespondencesConstPtr | getModelSceneCorrespondences () const |
Getter for the precomputed correspondences between points in the input dataset and points in the scene dataset. More... | |
std::vector< double > | getCharacteristicScales () const |
Getter for the vector of characteristic scales associated to each cluster. More... | |
void | cluster (std::vector< Correspondences > &clustered_corrs) |
Clusters the input correspondences belonging to different model instances. More... | |
![]() | |
PCLBase () | |
Empty constructor. More... | |
PCLBase (const PCLBase &base) | |
Copy constructor. More... | |
virtual | ~PCLBase () |
Destructor. More... | |
virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. More... | |
PointCloudConstPtr const | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... | |
virtual void | setIndices (const IndicesPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const IndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const PointIndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... | |
IndicesPtr const | getIndices () |
Get a pointer to the vector of indices used. More... | |
IndicesConstPtr const | getIndices () const |
Get a pointer to the vector of indices used. More... | |
const PointModelT & | operator[] (size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Protected Member Functions | |
void | clusterCorrespondences (std::vector< Correspondences > &model_instances) |
Cluster the input correspondences in order to distinguish between different instances of the model into the scene. More... | |
![]() | |
bool | initCompute () |
This method should get called before starting the actual computation. More... | |
bool | deinitCompute () |
This method should get called after finishing the actual computation. More... | |
![]() | |
bool | initCompute () |
This method should get called before starting the actual computation. More... | |
bool | deinitCompute () |
This method should get called after finishing the actual computation. More... | |
Protected Attributes | |
int | gc_threshold_ |
Minimum cluster size. More... | |
double | gc_size_ |
Resolution of the consensus set used to cluster correspondences together. More... | |
std::vector< Eigen::Matrix4f, Eigen::aligned_allocator < Eigen::Matrix4f > > | found_transformations_ |
Transformations found by clusterCorrespondences method. More... | |
![]() | |
SceneCloudConstPtr | scene_ |
The scene cloud. More... | |
CorrespondencesConstPtr | model_scene_corrs_ |
The correspondences between points in the input and the scene datasets. More... | |
std::vector< double > | corr_group_scale_ |
characteristic scale associated to each correspondence subset; if the cg algorithm can not handle scale invariance, the size of the vector will be 0. More... | |
![]() | |
PointCloudConstPtr | input_ |
The input point cloud dataset. More... | |
IndicesPtr | indices_ |
A pointer to the vector of point indices to use. More... | |
bool | use_indices_ |
Set to true if point indices are used. More... | |
bool | fake_indices_ |
If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More... | |
Class implementing a 3D correspondence grouping enforcing geometric consistency among feature correspondences.
Definition at line 55 of file geometric_consistency.h.
typedef pcl::PointCloud<PointModelT> pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::PointCloud |
Definition at line 58 of file geometric_consistency.h.
typedef PointCloud::ConstPtr pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::PointCloudConstPtr |
Definition at line 60 of file geometric_consistency.h.
typedef PointCloud::Ptr pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::PointCloudPtr |
Definition at line 59 of file geometric_consistency.h.
typedef pcl::CorrespondenceGrouping<PointModelT, PointSceneT>::SceneCloudConstPtr pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::SceneCloudConstPtr |
Definition at line 62 of file geometric_consistency.h.
|
inline |
Constructor.
Definition at line 65 of file geometric_consistency.h.
|
protectedvirtual |
Cluster the input correspondences in order to distinguish between different instances of the model into the scene.
[out] | model_instances | a vector containing the clustered correspondences for each model found on the scene. |
Implements pcl::CorrespondenceGrouping< PointModelT, PointSceneT >.
Definition at line 57 of file geometric_consistency.hpp.
References pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::setMaximumIterations().
|
inline |
Gets the consensus set resolution.
Definition at line 106 of file geometric_consistency.h.
References pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::gc_size_.
|
inline |
Gets the minimum cluster size.
Definition at line 86 of file geometric_consistency.h.
References pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::gc_threshold_.
bool pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::recognize | ( | std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > & | transformations | ) |
The main function, recognizes instances of the model into the scene set by the user.
[out] | transformations | a vector containing one transformation matrix for each instance of the model recognized into the scene. |
Definition at line 153 of file geometric_consistency.hpp.
bool pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::recognize | ( | std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > & | transformations, |
std::vector< pcl::Correspondences > & | clustered_corrs | ||
) |
The main function, recognizes instances of the model into the scene set by the user.
[out] | transformations | a vector containing one transformation matrix for each instance of the model recognized into the scene. |
[out] | clustered_corrs | a vector containing the correspondences for each instance of the model found within the input data (the same output of clusterCorrespondences). |
Definition at line 162 of file geometric_consistency.hpp.
|
inline |
Sets the consensus set resolution.
This should be in metric units.
[in] | gc_size | consensus set resolution. |
Definition at line 96 of file geometric_consistency.h.
References pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::gc_size_.
|
inline |
Sets the minimum cluster size.
[in] | threshold | the minimum cluster size |
Definition at line 76 of file geometric_consistency.h.
References pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::gc_threshold_.
|
protected |
Transformations found by clusterCorrespondences method.
Definition at line 142 of file geometric_consistency.h.
|
protected |
Resolution of the consensus set used to cluster correspondences together.
Definition at line 139 of file geometric_consistency.h.
Referenced by pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::getGCSize(), and pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::setGCSize().
|
protected |
Minimum cluster size.
It shouldn't be less than 3, since at least 3 correspondences are needed to compute the 6DOF pose
Definition at line 136 of file geometric_consistency.h.
Referenced by pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::getGCThreshold(), and pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::setGCThreshold().