38 #ifndef PCL_TRAJKOVIC_KEYPOINT_3D_H_
39 #define PCL_TRAJKOVIC_KEYPOINT_3D_H_
41 #include <pcl/keypoints/keypoint.h>
42 #include <pcl/common/intensity.h>
54 template <
typename Po
intInT,
typename Po
intOutT,
typename NormalT = pcl::Normal>
58 typedef boost::shared_ptr<TrajkovicKeypoint3D<PointInT, PointOutT, NormalT> >
Ptr;
59 typedef boost::shared_ptr<const TrajkovicKeypoint3D<PointInT, PointOutT, NormalT> >
ConstPtr;
83 float first_threshold = 0.00046,
84 float second_threshold = 0.03589)
86 , window_size_ (window_size)
87 , first_threshold_ (first_threshold)
88 , second_threshold_ (second_threshold)
91 name_ =
"TrajkovicKeypoint3D";
167 getNormalOrNull (
int i,
int j,
int& counter)
const
170 if (!
isFinite ((*normals_) (i,j)))
return (null);
172 return ((*normals_) (i,j));
178 double nx = a.normal_x;
double ny = a.normal_y;
double nz = a.normal_z;
179 double mx = b.normal_x;
double my = b.normal_y;
double mz = b.normal_z;
180 return (static_cast<float> (1.0 - (nx*mx + ny*my + nz*mz)));
186 float diff = normalsDiff (a,b);
187 return (diff * diff);
193 greaterCornernessAtIndices (
int a,
int b)
const
202 int half_window_size_;
204 float first_threshold_;
206 float second_threshold_;
208 unsigned int threads_;
216 #include <pcl/keypoints/impl/trajkovic_3d.hpp>
218 #endif // #ifndef PCL_TRAJKOVIC_KEYPOINT_3D_H_