错误 | C2664 | “void pcl::eigen33<Eigen::Matrix3f,Eigen::Vector3d>(const Matrix &,float &,Vector &)”: 无法将参数 2 从“Eigen::Matrix3d”转换为“float &” | 3DVisionMFCshf | F:\workcplus\3DVisionMFCshf\3DVisionMFCshf\3DVisionMFCshf.cpp | 3981 | ||||
严重性 | 代码 | 说明 | 项目 | 文件 | 行 | 禁止显示状态 | |||
错误 | C2338 | YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY | 3DVisionMFCshf | C:\pcl12\PCL 1.12.1\3rdParty\Eigen\eigen3\include\eigen3\Eigen\src\Core\AssignEvaluator.h | 834 |
上图的代码不知道为什么报错,在电脑重装系统以后,各种配置都完成以后,项目里面只有这一行报错,在原来的系统里面这行代码是没问题的,具体原因未找到。
解决办法,将上面的代码进行修改,改成下面的代码即可解决
Eigen::Matrix3f eigenVectors;
Eigen::Vector3f eigenValues;
pcl::eigen33<Eigen::Matrix3f, Eigen::Vector3f>(covariance, eigenVectors, eigenValues);
这个算法主要是用于计算协方差矩阵的时候使用。