[英]Converting Eigen 4x4 Matrix to QMatrix4x4
我一直在将RGBDSLAM转换为armhf( https://github.com/felixendres/rgbdslam_v2 ),并且在使用此功能时遇到错误:
template <typename T >
QMatrix4x4 eigenTF2QMatrix(const T& transf)
{
Eigen::Matrix<double, 4, 4, Eigen::RowMajor> m = transf.matrix();
//QMatrix4x4 qmat( static_cast<qreal*>( m.data() ) ); (original line)
QMatrix4x4 qmat( m.data() );
printQMatrix4x4("From Eigen::Transform", qmat);
return qmat;
}
该行:
QMatrix4x4 qmat( m.data() );
以及原始的:
QMatrix4x4 qmat( static_cast<qreal*>( m.data() ) );
给我错误:
error: invalid conversion from 'Eigen::PlainObjectBase<Eigen::Matrix<double, 4, 4, 1> >::Scalar* {aka double*}' to 'int' [-fpermissive]
如何修复此功能以使其正常工作?
您不能投射指针并期望它能工作。 还有就是cast
征的方法,但它不与的临时工作,所以你将不得不执行复制:
using Eigen;
Matrix<qreal, 4, 4, RowMajor> mcopy = m.cast<qreal>();
QMatrix4x4 qmat(mcopy.data());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.