44 #include <pcl/registration/icp.h>
45 #include <pcl/registration/bfgs.h>
59 template <
typename Po
intSource,
typename Po
intTarget>
96 typedef boost::shared_ptr< GeneralizedIterativeClosestPoint<PointSource, PointTarget> >
Ptr;
97 typedef boost::shared_ptr< const GeneralizedIterativeClosestPoint<PointSource, PointTarget> >
ConstPtr;
113 reg_name_ =
"GeneralizedIterativeClosestPoint";
119 this, _1, _2, _3, _4, _5);
125 PCL_DEPRECATED (
"[pcl::registration::GeneralizedIterativeClosestPoint::setInputCloud] setInputCloud is deprecated. Please use setInputSource instead.")
136 if (cloud->points.empty ())
138 PCL_ERROR (
"[pcl::%s::setInputSource] Invalid or empty point cloud dataset given!\n",
getClassName ().c_str ());
143 for (
size_t i = 0; i < input.
size (); ++i)
144 input[i].data[3] = 1.0;
172 const std::vector<int> &indices_src,
174 const std::vector<int> &indices_tgt,
175 Eigen::Matrix4f &transformation_matrix);
286 template<
typename Po
intT>
289 std::vector<Eigen::Matrix3d>& cloud_covariances);
299 size_t n = mat1.rows();
301 for(
size_t i = 0; i < n; i++)
302 for(
size_t j = 0; j < n; j++)
303 r += mat1 (j, i) * mat2 (i,j);
322 int k =
tree_->nearestKSearch (query, 1, index, distance);
343 boost::function<void(const pcl::PointCloud<PointSource> &cloud_src,
344 const std::vector<int> &src_indices,
346 const std::vector<int> &tgt_indices,
351 #include <pcl/registration/impl/gicp.hpp>
353 #endif //#ifndef PCL_GICP_H_