从零开始手写vio 第六节 视觉前端 任务7.4代码实践题

 /* your code begin */
    Eigen::Matrix D;
    D.setZero();
    Vector4d truth ;
    truth< T;
        T.setZero();
        T.block(0,0,3,3)=camera_pose[i].Rwc.inverse();
        T.block(0,3,3,1)=-camera_pose[i].Rwc.inverse()*camera_pose[i].twc;

        D.block(2*(i-start_frame_id),0,2,4) = camera_pose[i].uv*T.block(2,0,1,4)-T.block(0,0,2,4);
    }
    cout<<"D*y="< > eigen_sovler(D.transpose()*D);  // 特征值求解器
    cout << "Eigen Values : " << endl;
    cout << eigen_sovler.eigenvalues().transpose() << endl;    // 输出特征值
    cout << "Eigen Vector :" << endl;
    cout << eigen_sovler.eigenvectors() << endl;               // 输出特征向量

    double v[4];
    v[0] = eigen_sovler.eigenvectors()(0, 0);                  // 提取第一列特征向量
    v[1] = eigen_sovler.eigenvectors()(1, 0);
    v[2] = eigen_sovler.eigenvectors()(2, 0);
    v[3] = eigen_sovler.eigenvectors()(3, 0);

    v[0] /= v[3];
    v[1] /= v[3];
    v[2] /= v[3];
    v[3] /= v[3];
    P_est<

你可能感兴趣的:(从零开始手写vio 第六节 视觉前端 任务7.4代码实践题)