Point Cloud Library (PCL)  1.8.1-dev
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions
pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT > Class Template Reference

Implementation of the BRISK-descriptor, based on the original code and paper reference by. More...

#include <pcl/features/brisk_2d.h>

Public Types

typedef boost::shared_ptr
< BRISK2DEstimation< PointInT,
PointOutT, KeypointT,
IntensityT > > 
Ptr
 
typedef boost::shared_ptr
< const BRISK2DEstimation
< PointInT, PointOutT,
KeypointT, IntensityT > > 
ConstPtr
 
typedef pcl::PointCloud< PointInT > PointCloudInT
 
typedef pcl::PointCloud
< PointInT >::ConstPtr 
PointCloudInTConstPtr
 
typedef pcl::PointCloud
< KeypointT > 
KeypointPointCloudT
 
typedef pcl::PointCloud
< KeypointT >::Ptr 
KeypointPointCloudTPtr
 
typedef pcl::PointCloud
< KeypointT >::ConstPtr 
KeypointPointCloudTConstPtr
 
typedef pcl::PointCloud
< PointOutT > 
PointCloudOutT
 

Public Member Functions

 BRISK2DEstimation ()
 Constructor. More...
 
virtual ~BRISK2DEstimation ()
 Destructor. More...
 
void setRotationInvariance (const bool enable)
 Determines whether rotation invariance is enabled. More...
 
void setScaleInvariance (const bool enable)
 Determines whether scale invariance is enabled. More...
 
void setInputCloud (const PointCloudInTConstPtr &cloud)
 Sets the input cloud. More...
 
void setKeypoints (const KeypointPointCloudTPtr &keypoints)
 Sets the input keypoints. More...
 
void compute (PointCloudOutT &output)
 Computes the descriptors for the previously specified points and input data. More...
 

Protected Member Functions

void generateKernel (std::vector< float > &radius_list, std::vector< int > &number_list, float d_max=5.85f, float d_min=8.2f, std::vector< int > index_change=std::vector< int >())
 Call this to generate the kernel: circle of radius r (pixels), with n points; short pairings with dMax, long pairings with dMin. More...
 
int smoothedIntensity (const std::vector< unsigned char > &image, int image_width, int image_height, const std::vector< int > &integral_image, const float key_x, const float key_y, const unsigned int scale, const unsigned int rot, const unsigned int point) const
 Compute the smoothed intensity for a given x/y position in the image. More...
 

Detailed Description

template<typename PointInT, typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
class pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >

Implementation of the BRISK-descriptor, based on the original code and paper reference by.

Stefan Leutenegger,Margarita Chli and Roland Siegwart, BRISK: Binary Robust Invariant Scalable Keypoints, in Proceedings of the IEEE International Conference on Computer Vision (ICCV2011).
Warning
The input keypoints cloud is not const, and it will be modified: keypoints for which descriptors can not be computed will be deleted from the cloud.
Author
Radu B. Rusu, Stefan Holzer

Definition at line 68 of file brisk_2d.h.

Member Typedef Documentation

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef boost::shared_ptr<const BRISK2DEstimation<PointInT, PointOutT, KeypointT, IntensityT> > pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::ConstPtr

Definition at line 72 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<KeypointT> pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::KeypointPointCloudT

Definition at line 77 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<KeypointT>::ConstPtr pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::KeypointPointCloudTConstPtr

Definition at line 79 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<KeypointT>::Ptr pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::KeypointPointCloudTPtr

Definition at line 78 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<PointInT> pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::PointCloudInT

Definition at line 74 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<PointInT>::ConstPtr pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::PointCloudInTConstPtr

Definition at line 75 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef pcl::PointCloud<PointOutT> pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::PointCloudOutT

Definition at line 81 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
typedef boost::shared_ptr<BRISK2DEstimation<PointInT, PointOutT, KeypointT, IntensityT> > pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::Ptr

Definition at line 71 of file brisk_2d.h.

Constructor & Destructor Documentation

template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::BRISK2DEstimation ( )
template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::~BRISK2DEstimation ( )
virtual

Destructor.

Definition at line 86 of file brisk_2d.hpp.

Member Function Documentation

template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute ( PointCloudOutT output)

Computes the descriptors for the previously specified points and input data.

Parameters
[out]outputdescriptors the destination for the computed descriptors.

Definition at line 447 of file brisk_2d.hpp.

References pcl::PointCloud< T >::height, pcl::PointCloud< T >::is_dense, pcl::PointCloud< T >::points, pcl::PointCloud< T >::resize(), and pcl::PointCloud< T >::width.

template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::generateKernel ( std::vector< float > &  radius_list,
std::vector< int > &  number_list,
float  d_max = 5.85f,
float  d_min = 8.2f,
std::vector< int >  index_change = std::vector<int> () 
)
protected

Call this to generate the kernel: circle of radius r (pixels), with n points; short pairings with dMax, long pairings with dMin.

Note
This should never be called by a regular user. We use a fixed type in PCL (BRISKSignature512) and tampering with the parameters might lead to a different size descriptor which the user needs to accommodate in a new point type.

Definition at line 97 of file brisk_2d.hpp.

Referenced by pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::BRISK2DEstimation().

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::setInputCloud ( const PointCloudInTConstPtr cloud)
inline

Sets the input cloud.

Parameters
[in]cloudthe input cloud.

Definition at line 111 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::setKeypoints ( const KeypointPointCloudTPtr keypoints)
inline

Sets the input keypoints.

Parameters
[in]keypointsthe input cloud containing the keypoints.

Definition at line 120 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::setRotationInvariance ( const bool  enable)
inline

Determines whether rotation invariance is enabled.

Parameters
[in]enabledetermines whether rotation invariance is enabled.

Definition at line 93 of file brisk_2d.h.

template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
void pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::setScaleInvariance ( const bool  enable)
inline

Determines whether scale invariance is enabled.

Parameters
[in]enabledetermines whether scale invariance is enabled.

Definition at line 102 of file brisk_2d.h.

template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
int pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::smoothedIntensity ( const std::vector< unsigned char > &  image,
int  image_width,
int  image_height,
const std::vector< int > &  integral_image,
const float  key_x,
const float  key_y,
const unsigned int  scale,
const unsigned int  rot,
const unsigned int  point 
) const
inlineprotected

Compute the smoothed intensity for a given x/y position in the image.

Definition at line 219 of file brisk_2d.hpp.

References pcl::B.


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