| 30 | }; |
| 31 | |
| 32 | class Keyframe { |
| 33 | public: |
| 34 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW |
| 35 | Keyframe(int64_t _time_stamp, |
| 36 | std::vector<Eigen::Vector3i>& _point_ids, // NOLINT |
| 37 | int _index, |
| 38 | Eigen::Vector3d& _svin_T_w_i, // NOLINT |
| 39 | Eigen::Matrix3d& _svin_R_w_i, // NOLINT |
| 40 | cv::Mat& _image, // NOLINT |
| 41 | std::vector<cv::Point3f>& _point_3d, // NOLINT |
| 42 | std::vector<cv::KeyPoint>& _point_2d_uv, // NOLINT |
| 43 | std::map<Keyframe*, int>& KFcounter, // NOLINT |
| 44 | int _sequence, |
| 45 | BriefVocabulary* vocBrief, |
| 46 | const Parameters& params, |
| 47 | const bool vio_keyframe = true); |
| 48 | |
| 49 | Keyframe(int64_t _time_stamp, |
| 50 | int _index, |
| 51 | Eigen::Vector3d& _svin_T_w_i, // NOLINT |
| 52 | Eigen::Matrix3d& _svin_R_w_i, // NOLINT |
| 53 | std::map<Keyframe*, int>& KFcounter, // NOLINT |
| 54 | int _sequence, |
| 55 | const Parameters& params, |
| 56 | const bool is_vio_keyframe = false); |
| 57 | |
| 58 | bool findConnection(Keyframe* old_kf); |
| 59 | void computeWindowBRIEFPoint(); |
| 60 | void computeBRIEFPoint(); |
| 61 | |
| 62 | int HammingDis(const DVision::BRIEF256::bitset& a, const DVision::BRIEF256::bitset& b); |
| 63 | bool searchInAera(const DVision::BRIEF256::bitset window_descriptor, |
| 64 | const std::vector<DVision::BRIEF256::bitset>& descriptors_old, |
| 65 | const std::vector<cv::KeyPoint>& keypoints_old, |
| 66 | const std::vector<cv::KeyPoint>& keypoints_old_norm, |
| 67 | cv::Point2f& best_match, // NOLINT |
| 68 | cv::Point2f& best_match_norm); // NOLINT |
| 69 | void searchByBRIEFDes(std::vector<cv::Point2f>& matched_2d_old, // NOLINT |
| 70 | std::vector<cv::Point2f>& matched_2d_old_norm, // NOLINT |
| 71 | std::vector<uchar>& status, // NOLINT |
| 72 | const std::vector<DVision::BRIEF256::bitset>& descriptors_old, |
| 73 | const std::vector<cv::KeyPoint>& keypoints_old, |
| 74 | const std::vector<cv::KeyPoint>& keypoints_old_norm); |
| 75 | void PnPRANSAC(const std::vector<cv::Point2f>& matched_2d_old_norm, |
| 76 | const std::vector<cv::Point3f>& matched_3d, |
| 77 | std::vector<uchar>& status, // NOLINT |
| 78 | Eigen::Vector3d& PnP_T_old, // NOLINT |
| 79 | Eigen::Matrix3d& PnP_R_old); // NOLINT |
| 80 | void getSVInPose(Eigen::Vector3d& _T_w_i, Eigen::Matrix3d& _R_w_i); // NOLINT |
| 81 | void getPose(Eigen::Vector3d& _T_w_i, Eigen::Matrix3d& _R_w_i); // NOLINT |
| 82 | void updatePose(const Eigen::Vector3d& _T_w_i, const Eigen::Matrix3d& _R_w_i); |
| 83 | void updateSVInPose(const Eigen::Vector3d& _T_w_i, const Eigen::Matrix3d& _R_w_i); // NOLINT |
| 84 | void updateLoop(Eigen::Matrix<double, 8, 1>& _loop_info); // NOLINT |
| 85 | |
| 86 | Eigen::Vector3d getLoopRelativeT(); |
| 87 | double getLoopRelativeYaw(); |
| 88 | Eigen::Quaterniond getLoopRelativeQ(); |
| 89 |
nothing calls this directly
no outgoing calls
no test coverage detected