我使用的代码如下:
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有没有人知道如何转换或者错误的原因是什么?谢谢。
发布于 2013-08-23 21:07:35
transform是一个3D仿射变换,因此它的translate成员需要一个3D向量,而Template_centroid-model_centroid是一个4D向量。你可以去掉最后一个同构分量(我猜是0),然后使用(...).head<3>()得到一个3D矢量。
https://stackoverflow.com/questions/18402532
复制相似问题