1 #ifndef PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_ 2 #define PCL_TRACKING_IMPL_NORMAL_COHERENCE_H_ 5 #include <pcl/console/print.h> 6 #include <pcl/tracking/normal_coherence.h> 8 template <
typename Po
intInT>
double 11 Eigen::Vector4f n = source.getNormalVector4fMap ();
12 Eigen::Vector4f n_dash = target.getNormalVector4fMap ();
13 if ( n.norm () <= 1e-5 || n_dash.norm () <= 1e-5 )
15 PCL_ERROR(
"norm might be ZERO!\n");
16 std::cout <<
"source: " << source << std::endl;
17 std::cout <<
"target: " << target << std::endl;
26 if (!pcl_isnan (theta))
27 return 1.0 / (1.0 + weight_ * theta * theta);
34 #define PCL_INSTANTIATE_NormalCoherence(T) template class PCL_EXPORTS pcl::tracking::NormalCoherence<T>; double getAngle3D(const Eigen::Vector4f &v1, const Eigen::Vector4f &v2, const bool in_degree=false)
Compute the smallest angle between two 3D vectors in radians (default) or degree. ...
Define standard C methods and C++ classes that are common to all methods.
double computeCoherence(PointInT &source, PointInT &target)
return the normal coherence between the two points.