首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Eigen::Vector转换为Eigen::Affine3f

从Eigen::Vector转换为Eigen::Affine3f
EN

Stack Overflow用户
提问于 2013-08-23 20:11:35
回答 1查看 2K关注 0票数 1

我使用的代码如下:

代码语言:javascript
复制
   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);

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

代码语言:javascript
复制
 error: \u2018INVALID_MATRIX_PRODUCT\u2019 is not a member of \u2018Eigen::internal::static_assertion<false>\u2019

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

EN

回答 1

Stack Overflow用户

发布于 2013-08-23 21:07:35

transform是一个3D仿射变换,因此它的translate成员需要一个3D向量,而Template_centroid-model_centroid是一个4D向量。你可以去掉最后一个同构分量(我猜是0),然后使用(...).head<3>()得到一个3D矢量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18402532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档