Point Cloud Library (PCL)  1.14.0-dev
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

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

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 66 of file brisk_2d.h.

Member Typedef Documentation

◆ ConstPtr

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

Definition at line 70 of file brisk_2d.h.

◆ KeypointPointCloudT

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

Definition at line 75 of file brisk_2d.h.

◆ KeypointPointCloudTConstPtr

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

Definition at line 77 of file brisk_2d.h.

◆ KeypointPointCloudTPtr

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

Definition at line 76 of file brisk_2d.h.

◆ PointCloudInT

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

Definition at line 72 of file brisk_2d.h.

◆ PointCloudInTConstPtr

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

Definition at line 73 of file brisk_2d.h.

◆ PointCloudOutT

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

Definition at line 79 of file brisk_2d.h.

◆ Ptr

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

Definition at line 69 of file brisk_2d.h.

Constructor & Destructor Documentation

◆ BRISK2DEstimation()

template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >
pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::BRISK2DEstimation

◆ ~BRISK2DEstimation()

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

Destructor.

Definition at line 83 of file brisk_2d.hpp.

Member Function Documentation

◆ compute()

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 439 of file brisk_2d.hpp.

References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, M_PI, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size(), and pcl::PointCloud< PointT >::width.

◆ generateKernel()

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 94 of file brisk_2d.hpp.

References M_PI.

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

◆ setInputCloud()

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 109 of file brisk_2d.h.

◆ setKeypoints()

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 118 of file brisk_2d.h.

◆ setRotationInvariance()

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 91 of file brisk_2d.h.

◆ setScaleInvariance()

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 100 of file brisk_2d.h.

◆ smoothedIntensity()

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 212 of file brisk_2d.hpp.

References pcl::B.


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