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