ORBSLAM2--載入資料集
阿新 • • 發佈:2018-11-04
ifstream是操作檔案的輸入流類。
建立一個讀取檔案的fAssociation物件。
ifstream::open的宣告為:
void open (const char* filename, ios_base::openmode mode = ios_base::in);
需要一個char *型的指標,strAssociationFilename.c_str()的作用是轉換為一個和C語言類似的字串型別。
如果檔案為空,則fAssociation.eof()返回為true,迴圈結束。
getline(fAssociation,s);的作用是從fAssociation檔案流中獲取一行資料賦值給string類的物件s。
接著按照順序依次對時間t,RGB圖sRGB,Depth圖sD賦值。
同時將其push入對應的容器中。
void LoadImages(const string &strAssociationFilename, vector<string> &vstrImageFilenamesRGB, vector<string> &vstrImageFilenamesD, vector<double> &vTimestamps) { ifstream fAssociation; fAssociation.open(strAssociationFilename.c_str()); while(!fAssociation.eof()) { string s; getline(fAssociation,s); if(!s.empty()) { stringstream ss; ss << s; double t; string sRGB, sD; ss >> t; vTimestamps.push_back(t); ss >> sRGB; vstrImageFilenamesRGB.push_back(sRGB); ss >> t; ss >> sD; vstrImageFilenamesD.push_back(sD); } } }