40 #include <pcl/keypoints/keypoint.h> 50 template <
typename Po
intInT,
typename Po
intOutT,
typename NormalT = pcl::Normal>
54 using Ptr = shared_ptr<HarrisKeypoint3D<PointInT, PointOutT, NormalT> >;
55 using ConstPtr = shared_ptr<const HarrisKeypoint3D<PointInT, PointOutT, NormalT> >;
86 : threshold_ (threshold)
92 name_ =
"HarrisKeypoint3D";
178 unsigned int threads_;
182 #include <pcl/keypoints/impl/harris_3d.hpp> void responseNoble(PointCloudOut &output) const
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation...
void setRadius(float radius)
Set the radius for normal estimation and non maxima supression.
shared_ptr< PointCloud< NormalT > > Ptr
void setNormals(const PointCloudNConstPtr &normals)
Set normals if precalculated normals are available.
void responseHarris(PointCloudOut &output) const
gets the corner response for valid input points
typename Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
std::string name_
The key point detection method's name.
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
void setThreshold(float threshold)
Set the threshold value for detecting corners.
typename Keypoint< PointInT, PointOutT >::KdTree KdTree
void responseCurvature(PointCloudOut &output) const
void setInputCloud(const PointCloudInConstPtr &cloud) override
Provide a pointer to the input dataset.
HarrisKeypoint3D(ResponseMethod method=HARRIS, float radius=0.01f, float threshold=0.0f)
Constructor.
Keypoint represents the base class for key points.
typename PointCloudN::Ptr PointCloudNPtr
void refineCorners(PointCloudOut &corners) const
typename PointCloudIn::ConstPtr PointCloudInConstPtr
typename Keypoint< PointInT, PointOutT >::PointCloudIn PointCloudIn
shared_ptr< const HarrisKeypoint3D< PointInT, PointOutT, NormalT > > ConstPtr
void responseLowe(PointCloudOut &output) const
bool initCompute() override
shared_ptr< HarrisKeypoint3D< PointInT, PointOutT, NormalT > > Ptr
void setRefine(bool do_refine)
Whether the detected key points should be refined or not.
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 ...
~HarrisKeypoint3D()
Empty destructor.
void detectKeypoints(PointCloudOut &output) override
void setNonMaxSupression(bool=false)
Whether non maxima suppression should be applied or the response for each point should be returned...
shared_ptr< const PointCloud< NormalT > > ConstPtr
void setMethod(ResponseMethod type)
Set the method of the response to be calculated.
double search_radius_
The nearest neighbors search radius for each point.
HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients...
void setSearchSurface(const PointCloudInConstPtr &cloud) override
Provide a pointer to a dataset to add additional information to estimate the features for every point...
typename PointCloudN::ConstPtr PointCloudNConstPtr
void responseTomasi(PointCloudOut &output) const