39 #include <pcl/keypoints/keypoint.h>
84 template <
typename Po
intInT,
typename Po
intOutT,
typename NormalT = pcl::Normal>
88 typedef boost::shared_ptr<ISSKeypoint3D<PointInT, PointOutT, NormalT> >
Ptr;
89 typedef boost::shared_ptr<const ISSKeypoint3D<PointInT, PointOutT, NormalT> >
ConstPtr;
126 name_ =
"ISSKeypoint3D";
185 setNormals (
const PointCloudNConstPtr &normals);
212 getBoundaryPoints (PointCloudIn &input,
double border_radius,
float angle_threshold);
274 #include <pcl/keypoints/impl/iss_3d.hpp>
A point structure representing normal coordinates and the surface curvature estimate.
double gamma_32_
The upper bound on the ratio between the third and the second eigenvalue returned by the EVD...
void setThreshold32(double gamma_32)
Set the upper bound on the ratio between the third and the second eigenvalue.
boost::shared_ptr< PointCloud< NormalT > > Ptr
double salient_radius_
The radius of the spherical neighborhood used to compute the scatter matrix.
void setSalientRadius(double salient_radius)
Set the radius of the spherical neighborhood used to compute the scatter matrix.
void getScatterMatrix(const int ¤t_index, Eigen::Matrix3d &cov_m)
Compute the scatter matrix for a point index.
boost::shared_ptr< const ISSKeypoint3D< PointInT, PointOutT, NormalT > > ConstPtr
void setAngleThreshold(float angle)
Set the decision boundary (angle threshold) that marks points as boundary or regular.
void setBorderRadius(double border_radius)
Set the radius used for the estimation of the boundary points.
std::string name_
The key point detection method's name.
This file defines compatibility wrappers for low level I/O functions.
OctreeSearchIn::Ptr OctreeSearchInPtr
Keypoint< PointInT, PointOutT >::PointCloudIn PointCloudIn
void setNormals(const PointCloudNConstPtr &normals)
Set the normals if pre-calculated normals are available.
double search_radius_
The nearest neighbors search radius for each point.
Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
void setThreshold21(double gamma_21)
Set the upper bound on the ratio between the second and the first eigenvalue.
double normal_radius_
The radius used to compute the normals of the input cloud.
pcl::PointCloud< NormalT > PointCloudN
bool * edge_points_
Store the information about the boundary points of the input cloud.
double gamma_21_
The upper bound on the ratio between the second and the first eigenvalue returned by the EVD...
void setMinNeighbors(int min_neighbors)
Set the minimum number of neighbors that has to be found while applying the non maxima suppression al...
boost::shared_ptr< ISSKeypoint3D< PointInT, PointOutT, NormalT > > Ptr
boost::shared_ptr< const PointCloud< NormalT > > ConstPtr
Keypoint represents the base class for key points.
void detectKeypoints(PointCloudOut &output)
Detect the keypoints by performing the EVD of the scatter matrix.
boost::shared_ptr< OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT > > Ptr
unsigned int threads_
The number of threads that has to be used by the scheduler.
ISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.
PointCloudNConstPtr normals_
The cloud of normals related to the input surface.
bool * getBoundaryPoints(PointCloudIn &input, double border_radius, float angle_threshold)
Compute the boundary points for the given input cloud.
~ISSKeypoint3D()
Destructor.
int min_neighbors_
Minimum number of neighbors that has to be found while applying the non maxima suppression algorithm...
void setNormalRadius(double normal_radius)
Set the radius used for the estimation of the surface normals of the input cloud. ...
PointCloudN::ConstPtr PointCloudNConstPtr
float angle_threshold_
The decision boundary (angle threshold) that marks points as boundary or regular. ...
void setNonMaxRadius(double non_max_radius)
Set the radius for the application of the non maxima supression algorithm.
Octree pointcloud search class
double non_max_radius_
The non maxima suppression radius.
double * third_eigen_value_
Store the third eigen value associated to each point in the input cloud.
bool initCompute()
Perform the initial checks before computing the keypoints.
PointCloudN::Ptr PointCloudNPtr
double border_radius_
The radius used to compute the boundary points of the input cloud.
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
ISSKeypoint3D(double salient_radius=0.0001)
Constructor.
pcl::octree::OctreePointCloudSearch< PointInT > OctreeSearchIn