41 #include <pcl/kdtree/impl/kdtree_flann.hpp>
42 #include <pcl/registration/gicp.h>
44 #include <pcl/pcl_exports.h>
45 #include <pcl/point_cloud.h>
46 #include <pcl/point_representation.h>
78 (
float, x, x)(
float, y, y)(
float, z, z)(
float, L, L)(
float, a, a)(
float, b, b))
97 class PCL_EXPORTS GeneralizedIterativeClosestPoint6D
98 :
public GeneralizedIterativeClosestPoint<PointXYZRGBA, PointXYZRGBA> {
99 using PointSource = PointXYZRGBA;
100 using PointTarget = PointXYZRGBA;
107 GeneralizedIterativeClosestPoint6D(
float lab_weight = 0.032f);
115 setInputSource(
const PointCloudSourceConstPtr& cloud)
override;
123 setInputTarget(
const PointCloudTargetConstPtr& target)
override;
132 computeTransformation(PointCloudSource& output,
133 const Eigen::Matrix4f& guess)
override;
141 searchForNeighbors(
const PointXYZLAB& query,
142 std::vector<int>& index,
153 KdTreeFLANN<PointXYZLAB> target_tree_lab_;
160 class MyPointRepresentation :
public PointRepresentation<PointXYZLAB> {
165 using Ptr = shared_ptr<MyPointRepresentation>;
166 using ConstPtr = shared_ptr<const MyPointRepresentation>;
168 MyPointRepresentation()
174 ~MyPointRepresentation() {}
179 return Ptr(
new MyPointRepresentation(*
this));
183 copyToFloatArray(
const PointXYZLAB& p,
float* out)
const override
196 MyPointRepresentation point_rep_;