// // Created by ivan on 17.01.2022. // #ifndef ORB_SLAM3_PROCESSING_FUNCTIONS_H #define ORB_SLAM3_PROCESSING_FUNCTIONS_H #include #include #include using namespace std; cv::Mat& extract_rot(cv::Mat& rot, const cv::Mat& trans); vector operator + (vector& lhs, vector& rhs); vector operator + (vector& lhs, float rhs); vector operator - (vector& lhs, float rhs); vector operator - (vector& arg); vector operator - (vector& lhs, vector& rhs); vector operator * (vector& lhs, float rhs); bool operator == (vector& lhs, float rhs); void calc_avg_velocity(const vector>& recent_velocities, vector& avg_velocity); void calculate_velocity(const vector>& recent_values, vector& avg_velocity); void process_lost_euler(vector& euler_prev, vector& euler_now, int recent_values_desired_length, const vector>& recent_values, vector& avg_velocity); void fill_recent_values(const vector& value, vector>& recent_values, int length=5); void process_euler(std::vector& euler_prev, std::vector& euler_now, std::vector& skew_angle, std::vector& all_maps_id, int& prevID, int& currID, vector& avg_velocity); vector& extract_translation(vector& transl, const cv::Mat& tcw); bool isMatEmpty(const cv::Mat& mat); bool isMatEye(const cv::Mat& mat); #endif //ORB_SLAM3_PROCESSING_FUNCTIONS_H