1

我使用的代码如下:

   Eigen::Vector4f Template_centroid;
   pcl::compute3DCentroid(*Template,Template_centroid);

   Eigen::Vector4f model_centroid;
   pcl::compute3DCentroid(model.cloud,model_centroid);

   // Transformation required to align the centroids
   Eigen::Affine3f transform(Eigen::Affine3d::Identity());
   transform.translate(Template_centroid-model_centroid);

但是当它编译翻译时,我得到了错误:

 error: \u2018INVALID_MATRIX_PRODUCT\u2019 is not a member of \u2018Eigen::internal::static_assertion<false>\u2019

有谁知道如何转换或错误的原因是什么?谢谢。

4

1 回答 1

1

transform是一个 3D 仿射变换,所以它的translate成员期望一个 3D 向量,而Template_centroid-model_centroid是一个 4D 向量。您可以删除最后一个同质分量(我猜是 0),并使用(...).head<3>().

于 2013-08-23T13:07:34.577 回答