38 #ifndef PCL_HARRIS_KEYPOINT_3D_H_
39 #define PCL_HARRIS_KEYPOINT_3D_H_
41 #include <pcl/keypoints/keypoint.h>
51 template <
typename Po
intInT,
typename Po
intOutT,
typename NormalT = pcl::Normal>
55 typedef boost::shared_ptr<HarrisKeypoint3D<PointInT, PointOutT, NormalT> >
Ptr;
56 typedef boost::shared_ptr<const HarrisKeypoint3D<PointInT, PointOutT, NormalT> >
ConstPtr;
85 : threshold_ (threshold)
91 name_ =
"HarrisKeypoint3D";
171 unsigned int threads_;
175 #include <pcl/keypoints/impl/harris_3d.hpp>
177 #endif // #ifndef PCL_HARRIS_KEYPOINT_3D_H_
void setRadius(float radius)
Set the radius for normal estimation and non maxima supression.
virtual ~HarrisKeypoint3D()
Empty destructor.
void setThreshold(float threshold)
Set the threshold value for detecting corners.
void responseTomasi(PointCloudOut &output) const
virtual void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to a dataset to add additional information to estimate the features for every point...
void responseNoble(PointCloudOut &output) const
void refineCorners(PointCloudOut &corners) const
HarrisKeypoint3D(ResponseMethod method=HARRIS, float radius=0.01f, float threshold=0.0f)
Constructor.
pcl::PointCloud< NormalT > PointCloudN
PointCloudIn::ConstPtr PointCloudInConstPtr
void setMethod(ResponseMethod type)
Set the method of the response to be calculated.
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
void setNonMaxSupression(bool=false)
Whether non maxima suppression should be applied or the response for each point should be returned...
Keypoint represents the base class for key points.
void detectKeypoints(PointCloudOut &output)
Abstract key point detection method.
void setRefine(bool do_refine)
Whether the detected key points should be refined or not.
double search_radius_
The nearest neighbors search radius for each point.
boost::shared_ptr< const HarrisKeypoint3D< PointInT, PointOutT, NormalT > > ConstPtr
PointCloudN::Ptr PointCloudNPtr
Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
std::string name_
The key point detection method's name.
boost::shared_ptr< HarrisKeypoint3D< PointInT, PointOutT, NormalT > > Ptr
void setNormals(const PointCloudNConstPtr &normals)
Set normals if precalculated normals are available.
Keypoint< PointInT, PointOutT >::KdTree KdTree
boost::shared_ptr< PointCloud< PointT > > Ptr
void responseHarris(PointCloudOut &output) const
gets the corner response for valid input points
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation...
boost::shared_ptr< const PointCloud< PointT > > ConstPtr
PointCloudN::ConstPtr PointCloudNConstPtr
HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients...
void responseCurvature(PointCloudOut &output) const
void calculateNormalCovar(const std::vector< int > &neighbors, float *coefficients) const
calculates the upper triangular part of unnormalized covariance matrix over the normals given by the ...
void responseLowe(PointCloudOut &output) const
Keypoint< PointInT, PointOutT >::PointCloudIn PointCloudIn