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)
89 name_ =
"HarrisKeypoint3D";
175 unsigned int threads_{0};
179 #include <pcl/keypoints/impl/harris_3d.hpp>
void refineCorners(PointCloudOut &corners) 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 suppression.
shared_ptr< PointCloud< NormalT > > Ptr
void setNormals(const PointCloudNConstPtr &normals)
Set normals if precalculated normals are available.
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.
void calculateNormalCovar(const pcl::Indices &neighbors, float *coefficients) const
calculates the upper triangular part of unnormalized covariance matrix over the normals given by the ...
typename Keypoint< PointInT, PointOutT >::KdTree KdTree
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
typename PointCloudIn::ConstPtr PointCloudInConstPtr
typename Keypoint< PointInT, PointOutT >::PointCloudIn PointCloudIn
shared_ptr< const HarrisKeypoint3D< PointInT, PointOutT, NormalT > > ConstPtr
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.
IndicesAllocator<> Indices
Type used for indices in PCL.
void responseTomasi(PointCloudOut &output) const
void responseHarris(PointCloudOut &output) const
gets the corner response for valid input points
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...
~HarrisKeypoint3D() override=default
Empty destructor.
void setSearchSurface(const PointCloudInConstPtr &cloud) override
Provide a pointer to a dataset to add additional information to estimate the features for every point...
void responseCurvature(PointCloudOut &output) const
typename PointCloudN::ConstPtr PointCloudNConstPtr
void responseLowe(PointCloudOut &output) const
void responseNoble(PointCloudOut &output) const