表示位姿的数据结构相互转换。
1.T->T
opencv ->eigen
Eigen::Matrix4d opencv_T_to_matrix4d(const cv::Mat &cvT)
{
Eigen::Matrix4d e_T;
e_T << cvT.at(0,0), cvT.at(0,1), cvT.at(0,2),cvT.at(0,3),
cvT.at(1,0), cvT.at(1,1), cvT.at(1,2),cvT.at(1,3),
cvT.at(2,0), cvT.at(2,1), cvT.at(2,2),cvT.at(2,3),
cvT.at(3,0), cvT.at(3,1), cvT.at(3,2),cvT.at(3,3);
return e_T;
}
eigen->opencv
cv::Mat Converter::toCvMat(const Eigen::Matrix &m)
{
cv::Mat cvMat(4,4,CV_32F);
for(int i=0;i<4;i++)
for(int j=0; j<4; j++)
cvMat.at(i,j)=m(i,j);
return cvMat.clone();
}
2.R->R
opencv ->eigen
Eigen::Matrix3d toMatrix3d(const cv::Mat &cvMat3)
{
Eigen::Matrix3d M;
M << cvMat3.at(