SLProject 4.0.000
|
AR Keyframe node class. More...
#include <WAIKeyFrame.h>
Public Member Functions | |
WAIKeyFrame (const cv::Mat &Tcw, unsigned long id, bool fixKF, float fx, float fy, float cx, float cy, size_t N, const std::vector< cv::KeyPoint > &vKeysUn, const cv::Mat &descriptors, WAIOrbVocabulary *vocabulary, int nScaleLevels, float fScaleFactor, const std::vector< float > &vScaleFactors, const std::vector< float > &vLevelSigma2, const std::vector< float > &vInvLevelSigma2, int nMinX, int nMinY, int nMaxX, int nMaxY, const cv::Mat &KB) | |
keyframe generation during map loading More... | |
WAIKeyFrame (WAIFrame &F, bool retainImg=true) | |
keyframe generation from frame More... | |
void | SetPose (const cv::Mat &Tcw) |
cv::Mat | GetPose () |
cv::Mat | GetPoseInverse () |
cv::Mat | GetCameraCenter () |
cv::Mat | GetRotation () |
cv::Mat | GetTranslation () |
void | ComputeBoW (WAIOrbVocabulary *vocabulary) |
void | SetBowVector (WAIBowVector &bow) |
void | AddConnection (WAIKeyFrame *pKF, int weight) |
void | EraseConnection (WAIKeyFrame *pKF) |
void | FindAndUpdateConnections (bool buildSpanningTree=true) |
void | UpdateConnections (std::map< WAIKeyFrame *, int > KFcounter, bool buildSpanningTree) |
void | UpdateBestCovisibles () |
std::set< WAIKeyFrame * > | GetConnectedKeyFrames () |
std::vector< WAIKeyFrame * > | GetVectorCovisibleKeyFrames () |
std::vector< WAIKeyFrame * > | GetBestCovisibilityKeyFrames (const int &N) |
std::vector< WAIKeyFrame * > | GetCovisiblesByWeight (const int &w) |
int | GetWeight (WAIKeyFrame *pKF) |
const std::map< WAIKeyFrame *, int > & | GetConnectedKfWeights () |
void | AddChild (WAIKeyFrame *pKF) |
void | EraseChild (WAIKeyFrame *pKF) |
void | ChangeParent (WAIKeyFrame *pKF) |
std::set< WAIKeyFrame * > | GetChilds () |
WAIKeyFrame * | GetParent () |
bool | hasChild (WAIKeyFrame *pKF) |
void | AddLoopEdge (WAIKeyFrame *pKF) |
std::set< WAIKeyFrame * > | GetLoopEdges () |
void | AddMapPoint (WAIMapPoint *pMP, size_t idx) |
void | EraseMapPointMatch (WAIMapPoint *pMP) |
void | EraseMapPointMatch (const size_t &idx) |
void | ReplaceMapPointMatch (const size_t &idx, WAIMapPoint *pMP) |
std::set< WAIMapPoint * > | GetMapPoints () |
std::vector< WAIMapPoint * > | GetMapPointMatches () |
int | TrackedMapPoints (const int &minObs) |
WAIMapPoint * | GetMapPoint (const size_t &idx) |
bool | hasMapPoint (WAIMapPoint *mp) |
bool | isFixed () const |
std::vector< size_t > | GetFeaturesInArea (const float &x, const float &y, const float &r) const |
bool | IsInImage (const float &x, const float &y) const |
void | SetNotErase () |
void | SetErase () |
void | SetBadFlag () |
bool | isBad () |
bool | findChildRecursive (WAIKeyFrame *kf) |
float | ComputeSceneMedianDepth (const int q) |
size_t | getSizeOfCvMat (const cv::Mat &mat) |
size_t | getSizeOf () |
void | setTexturePath (const std::string &path) |
const std::string & | getTexturePath () |
cv::Mat | getObjectMatrix () |
get visual representation as SLPoints More... | |
Static Public Member Functions | |
static bool | weightComp (int a, int b) |
static bool | lId (WAIKeyFrame *pKF1, WAIKeyFrame *pKF2) |
Public Attributes | |
long unsigned int | mnId |
const long unsigned int | mnFrameId |
const double | mTimeStamp |
const bool | _fixed = false |
const int | mnGridCols |
const int | mnGridRows |
const float | mfGridElementWidthInv |
const float | mfGridElementHeightInv |
long unsigned int | mnMarker [7] |
long unsigned int | mnLoopQuery = 0 |
int | mnLoopWords = 0 |
float | mLoopScore = -1.0 |
long unsigned int | mnRelocQuery = 0 |
int | mnRelocWords = 0 |
float | mRelocScore = -1.0f |
cv::Mat | mTcwGBA |
cv::Mat | mTcwRefGBA |
const float | fx |
const float | fy |
const float | cx |
const float | cy |
const float | invfx |
const float | invfy |
const int | N = 0 |
const std::vector< cv::KeyPoint > | mvKeysUn |
const cv::Mat | mDescriptors |
WAIBowVector | mBowVec |
WAIFeatVector | mFeatVec |
cv::Mat | mTcp |
const int | mnScaleLevels |
const float | mfScaleFactor |
const float | mfLogScaleFactor |
const std::vector< float > | mvScaleFactors |
const std::vector< float > | mvLevelSigma2 |
const std::vector< float > | mvInvLevelSigma2 |
const int | mnMinX |
const int | mnMinY |
const int | mnMaxX |
const int | mnMaxY |
const cv::Mat | mK |
cv::Mat | imgGray |
std::mutex | mMutexPose |
std::mutex | mMutexConnections |
std::mutex | mMutexFeatures |
Static Public Attributes | |
static long unsigned int | nNextId = 0 |
Protected Attributes | |
cv::Mat | _Twc |
cv::Mat | _Tcw |
cv::Mat | Ow |
camera center More... | |
std::vector< WAIMapPoint * > | mvpMapPoints |
std::vector< std::size_t > | mGrid [FRAME_GRID_COLS][FRAME_GRID_ROWS] |
std::map< WAIKeyFrame *, int > | mConnectedKeyFrameWeights |
std::vector< WAIKeyFrame * > | mvpOrderedConnectedKeyFrames |
std::vector< int > | mvOrderedWeights |
bool | mbFirstConnection = true |
WAIKeyFrame * | mpParent = NULL |
std::set< WAIKeyFrame * > | mspChildrens |
std::set< WAIKeyFrame * > | mspLoopEdges |
bool | mbNotErase |
bool | mbToBeErased |
bool | mbBad |
Private Member Functions | |
void | AssignFeaturesToGrid () |
this is a function from Frame, but we need it here for map loading More... | |
bool | PosInGrid (const cv::KeyPoint &kp, int &posX, int &posY) |
this is a function from Frame, but we need it here for map loading More... | |
Private Attributes | |
std::string | _pathToTexture |
AR Keyframe node class.
A Keyframe is a camera with a position and additional information about key- points that were found in this frame. It also contains descriptors for the found keypoints.
WAIKeyFrame::WAIKeyFrame | ( | const cv::Mat & | Tcw, |
unsigned long | id, | ||
bool | fixKF, | ||
float | fx, | ||
float | fy, | ||
float | cx, | ||
float | cy, | ||
size_t | N, | ||
const std::vector< cv::KeyPoint > & | vKeysUn, | ||
const cv::Mat & | descriptors, | ||
WAIOrbVocabulary * | vocabulary, | ||
int | nScaleLevels, | ||
float | fScaleFactor, | ||
const std::vector< float > & | vScaleFactors, | ||
const std::vector< float > & | vLevelSigma2, | ||
const std::vector< float > & | vInvLevelSigma2, | ||
int | nMinX, | ||
int | nMinY, | ||
int | nMaxX, | ||
int | nMaxY, | ||
const cv::Mat & | KB | ||
) |
keyframe generation during map loading
load an existing keyframe (used during file load)
WAIKeyFrame::WAIKeyFrame | ( | WAIFrame & | F, |
bool | retainImg = true |
||
) |
keyframe generation from frame
void WAIKeyFrame::AddChild | ( | WAIKeyFrame * | pKF | ) |
void WAIKeyFrame::AddConnection | ( | WAIKeyFrame * | pKF, |
int | weight | ||
) |
void WAIKeyFrame::AddLoopEdge | ( | WAIKeyFrame * | pKF | ) |
void WAIKeyFrame::AddMapPoint | ( | WAIMapPoint * | pMP, |
size_t | idx | ||
) |
|
private |
this is a function from Frame, but we need it here for map loading
void WAIKeyFrame::ChangeParent | ( | WAIKeyFrame * | pKF | ) |
void WAIKeyFrame::ComputeBoW | ( | WAIOrbVocabulary * | vocabulary | ) |
float WAIKeyFrame::ComputeSceneMedianDepth | ( | const int | q | ) |
void WAIKeyFrame::EraseChild | ( | WAIKeyFrame * | pKF | ) |
void WAIKeyFrame::EraseConnection | ( | WAIKeyFrame * | pKF | ) |
void WAIKeyFrame::EraseMapPointMatch | ( | const size_t & | idx | ) |
void WAIKeyFrame::EraseMapPointMatch | ( | WAIMapPoint * | pMP | ) |
void WAIKeyFrame::FindAndUpdateConnections | ( | bool | buildSpanningTree = true | ) |
bool WAIKeyFrame::findChildRecursive | ( | WAIKeyFrame * | kf | ) |
vector< WAIKeyFrame * > WAIKeyFrame::GetBestCovisibilityKeyFrames | ( | const int & | N | ) |
cv::Mat WAIKeyFrame::GetCameraCenter | ( | ) |
std::set< WAIKeyFrame * > WAIKeyFrame::GetChilds | ( | ) |
set< WAIKeyFrame * > WAIKeyFrame::GetConnectedKeyFrames | ( | ) |
const std::map< WAIKeyFrame *, int > & WAIKeyFrame::GetConnectedKfWeights | ( | ) |
vector< WAIKeyFrame * > WAIKeyFrame::GetCovisiblesByWeight | ( | const int & | w | ) |
vector< size_t > WAIKeyFrame::GetFeaturesInArea | ( | const float & | x, |
const float & | y, | ||
const float & | r | ||
) | const |
set< WAIKeyFrame * > WAIKeyFrame::GetLoopEdges | ( | ) |
WAIMapPoint * WAIKeyFrame::GetMapPoint | ( | const size_t & | idx | ) |
vector< WAIMapPoint * > WAIKeyFrame::GetMapPointMatches | ( | ) |
set< WAIMapPoint * > WAIKeyFrame::GetMapPoints | ( | ) |
cv::Mat WAIKeyFrame::getObjectMatrix | ( | ) |
get visual representation as SLPoints
WAIKeyFrame * WAIKeyFrame::GetParent | ( | ) |
cv::Mat WAIKeyFrame::GetPose | ( | ) |
cv::Mat WAIKeyFrame::GetPoseInverse | ( | ) |
cv::Mat WAIKeyFrame::GetRotation | ( | ) |
size_t WAIKeyFrame::getSizeOf | ( | ) |
size_t WAIKeyFrame::getSizeOfCvMat | ( | const cv::Mat & | mat | ) |
|
inline |
cv::Mat WAIKeyFrame::GetTranslation | ( | ) |
vector< WAIKeyFrame * > WAIKeyFrame::GetVectorCovisibleKeyFrames | ( | ) |
int WAIKeyFrame::GetWeight | ( | WAIKeyFrame * | pKF | ) |
bool WAIKeyFrame::hasChild | ( | WAIKeyFrame * | pKF | ) |
bool WAIKeyFrame::hasMapPoint | ( | WAIMapPoint * | mp | ) |
bool WAIKeyFrame::isBad | ( | ) |
bool WAIKeyFrame::isFixed | ( | ) | const |
bool WAIKeyFrame::IsInImage | ( | const float & | x, |
const float & | y | ||
) | const |
|
inlinestatic |
|
private |
this is a function from Frame, but we need it here for map loading
void WAIKeyFrame::ReplaceMapPointMatch | ( | const size_t & | idx, |
WAIMapPoint * | pMP | ||
) |
void WAIKeyFrame::SetBadFlag | ( | ) |
void WAIKeyFrame::SetBowVector | ( | WAIBowVector & | bow | ) |
void WAIKeyFrame::SetErase | ( | ) |
void WAIKeyFrame::SetNotErase | ( | ) |
void WAIKeyFrame::SetPose | ( | const cv::Mat & | Tcw | ) |
|
inline |
int WAIKeyFrame::TrackedMapPoints | ( | const int & | minObs | ) |
void WAIKeyFrame::UpdateBestCovisibles | ( | ) |
void WAIKeyFrame::UpdateConnections | ( | std::map< WAIKeyFrame *, int > | KFcounter, |
bool | buildSpanningTree | ||
) |
|
inlinestatic |
const bool WAIKeyFrame::_fixed = false |
|
private |
|
protected |
|
protected |
opencv coordinate representation: z-axis points to principlal point, x-axis to the right and y-axis down Infos about the pose: https://github.com/raulmur/ORB_SLAM2/issues/249
const float WAIKeyFrame::cx |
const float WAIKeyFrame::cy |
const float WAIKeyFrame::fx |
const float WAIKeyFrame::fy |
cv::Mat WAIKeyFrame::imgGray |
const float WAIKeyFrame::invfx |
const float WAIKeyFrame::invfy |
|
protected |
|
protected |
|
protected |
WAIBowVector WAIKeyFrame::mBowVec |
|
protected |
|
protected |
const cv::Mat WAIKeyFrame::mDescriptors |
WAIFeatVector WAIKeyFrame::mFeatVec |
const float WAIKeyFrame::mfGridElementHeightInv |
const float WAIKeyFrame::mfGridElementWidthInv |
const float WAIKeyFrame::mfLogScaleFactor |
const float WAIKeyFrame::mfScaleFactor |
|
protected |
const cv::Mat WAIKeyFrame::mK |
float WAIKeyFrame::mLoopScore = -1.0 |
std::mutex WAIKeyFrame::mMutexConnections |
std::mutex WAIKeyFrame::mMutexFeatures |
std::mutex WAIKeyFrame::mMutexPose |
const long unsigned int WAIKeyFrame::mnFrameId |
const int WAIKeyFrame::mnGridCols |
const int WAIKeyFrame::mnGridRows |
long unsigned int WAIKeyFrame::mnId |
long unsigned int WAIKeyFrame::mnLoopQuery = 0 |
int WAIKeyFrame::mnLoopWords = 0 |
long unsigned int WAIKeyFrame::mnMarker[7] |
const int WAIKeyFrame::mnMaxX |
const int WAIKeyFrame::mnMaxY |
const int WAIKeyFrame::mnMinX |
const int WAIKeyFrame::mnMinY |
long unsigned int WAIKeyFrame::mnRelocQuery = 0 |
int WAIKeyFrame::mnRelocWords = 0 |
const int WAIKeyFrame::mnScaleLevels |
|
protected |
float WAIKeyFrame::mRelocScore = -1.0f |
|
protected |
|
protected |
cv::Mat WAIKeyFrame::mTcp |
cv::Mat WAIKeyFrame::mTcwGBA |
cv::Mat WAIKeyFrame::mTcwRefGBA |
const double WAIKeyFrame::mTimeStamp |
const std::vector<float> WAIKeyFrame::mvInvLevelSigma2 |
const std::vector<cv::KeyPoint> WAIKeyFrame::mvKeysUn |
const std::vector<float> WAIKeyFrame::mvLevelSigma2 |
|
protected |
|
protected |
|
protected |
const std::vector<float> WAIKeyFrame::mvScaleFactors |
const int WAIKeyFrame::N = 0 |
|
static |
This file is part of ORB-SLAM2.
Copyright (C) 2014-2016 Ra�l Mur-Artal <raulmur at unizar dot es> (University of Zaragoza) For more information see https://github.com/raulmur/ORB_SLAM2
ORB-SLAM2 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ORB-SLAM2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ORB-SLAM2. If not, see http://www.gnu.org/licenses/.
|
protected |
camera center