40 #ifndef PCL_FEATURES_BRISK_2D_H_ 41 #define PCL_FEATURES_BRISK_2D_H_ 44 #include <pcl/features/feature.h> 45 #include <pcl/common/eigen.h> 47 #include <pcl/common/intensity.h> 64 template <
typename PointInT,
71 typedef boost::shared_ptr<BRISK2DEstimation<PointInT, PointOutT, KeypointT, IntensityT> >
Ptr;
72 typedef boost::shared_ptr<const BRISK2DEstimation<PointInT, PointOutT, KeypointT, IntensityT> >
ConstPtr;
95 rotation_invariance_enabled_ = enable;
104 scale_invariance_enabled_ = enable;
113 input_cloud_ = cloud;
125 keypoints_ = keypoints;
147 std::vector<int> &number_list,
148 float d_max = 5.85f,
float d_min = 8.2f,
149 std::vector<int> index_change = std::vector<int> ());
154 int image_width,
int image_height,
155 const std::vector<int>& integral_image,
156 const float key_x,
const float key_y,
const unsigned int scale,
157 const unsigned int rot,
const unsigned int point)
const;
162 RoiPredicate (
const float min_x,
const float min_y,
163 const float max_x,
const float max_y,
const KeypointT& key_pt);
166 bool rotation_invariance_enabled_;
169 bool scale_invariance_enabled_;
172 const float pattern_scale_;
184 struct BriskPatternPoint
194 struct BriskShortPair
216 BriskPatternPoint* pattern_points_;
219 unsigned int points_;
222 const unsigned int n_rot_;
228 unsigned int* size_list_;
231 const unsigned int scales_;
234 const float scalerange_;
237 const float basic_size_;
247 BriskShortPair* short_pairs_;
249 BriskLongPair* long_pairs_;
251 unsigned int no_short_pairs_;
253 unsigned int no_long_pairs_;
256 IntensityT intensity_;
264 #include <pcl/features/impl/brisk_2d.hpp> 266 #endif //#ifndef PCL_FEATURES_BRISK_2D_H_ void compute(PointCloudOutT &output)
Computes the descriptors for the previously specified points and input data.
pcl::PointCloud< KeypointT >::ConstPtr KeypointPointCloudTConstPtr
pcl::PointCloud< KeypointT > KeypointPointCloudT
void setRotationInvariance(const bool enable)
Determines whether rotation invariance is enabled.
void setScaleInvariance(const bool enable)
Determines whether scale invariance is enabled.
A point structure representing the Binary Robust Invariant Scalable Keypoints (BRISK).
pcl::PointCloud< PointInT >::ConstPtr PointCloudInTConstPtr
Implementation of the BRISK-descriptor, based on the original code and paper reference by.
void setKeypoints(const KeypointPointCloudTPtr &keypoints)
Sets the input keypoints.
boost::shared_ptr< BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT > > Ptr
boost::shared_ptr< PointCloud< PointT > > Ptr
pcl::PointCloud< PointOutT > PointCloudOutT
boost::shared_ptr< const BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT > > ConstPtr
boost::shared_ptr< const PointCloud< PointT > > ConstPtr
void setInputCloud(const PointCloudInTConstPtr &cloud)
Sets the input cloud.
pcl::PointCloud< PointInT > PointCloudInT
virtual ~BRISK2DEstimation()
Destructor.
A point structure representing a 3-D position and scale.
BRISK2DEstimation()
Constructor.
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 dMa...
pcl::PointCloud< KeypointT >::Ptr KeypointPointCloudTPtr
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.
Define methods for centroid estimation and covariance matrix calculus.