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