43 #include <pcl/point_cloud.h> 44 #include <pcl/point_representation.h> 45 #include <pcl/kdtree/impl/kdtree_flann.hpp> 46 #include <pcl/registration/gicp.h> 63 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
71 x = y = z = 0.0f; data[3] = 1.0f;
72 L = a = b = 0.0f; data_lab[3] = 0.0f;
105 class PCL_EXPORTS GeneralizedIterativeClosestPoint6D :
public GeneralizedIterativeClosestPoint<PointXYZRGBA, PointXYZRGBA>
107 typedef PointXYZRGBA PointSource;
108 typedef PointXYZRGBA PointTarget;
116 GeneralizedIterativeClosestPoint6D (
float lab_weight = 0.032f);
124 setInputSource (
const PointCloudSourceConstPtr& cloud);
132 setInputTarget (
const PointCloudTargetConstPtr& target);
141 computeTransformation (PointCloudSource& output,
142 const Eigen::Matrix4f& guess);
150 searchForNeighbors (
const PointXYZLAB& query, std::vector<int>& index, std::vector<float>&
distance);
160 KdTreeFLANN<PointXYZLAB> target_tree_lab_;
166 class MyPointRepresentation :
public PointRepresentation<PointXYZLAB>
172 typedef boost::shared_ptr<MyPointRepresentation> Ptr;
173 typedef boost::shared_ptr<const MyPointRepresentation> ConstPtr;
175 MyPointRepresentation ()
182 ~MyPointRepresentation ()
189 return Ptr (
new MyPointRepresentation (*
this));
193 copyToFloatArray (
const PointXYZLAB &p,
float * out)
const 206 MyPointRepresentation point_rep_;
210 #endif //#ifndef PCL_GICP6D_H_ struct pcl::PointXYZIEdge EIGEN_ALIGN16
This file defines compatibility wrappers for low level I/O functions.
boost::shared_ptr< PointCloud< PointT > > Ptr
A custom point type for position and CIELAB color value.
int nr_dimensions_
The number of dimensions in this point's vector (i.e.
Defines all the PCL implemented PointT point type structures.
POINT_CLOUD_REGISTER_POINT_STRUCT(pcl::_PointXYZLAB,(float, x, x)(float, y, y)(float, z, z)(float, L, L)(float, a, a)(float, b, b)) namespace pcl
float distance(const PointT &p1, const PointT &p2)
bool trivial_
Indicates whether this point representation is trivial.