OpenCV實現遍歷資料夾下所有檔案
阿新 • • 發佈:2018-11-13
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
OpenCV中有實現遍歷資料夾下所有檔案的類Directory,它裡面包括3個成員函式:(1)、GetListFiles:遍歷指定資料夾下的所有檔案,不包括指定資料夾內的資料夾;(2)、GetListFolders:遍歷指定資料夾下的所有資料夾,不包括指定資料夾下的檔案;(3)、GetListFilesR:遍歷指定資料夾下的所有檔案,包括指定資料夾內的資料夾。
若要使用Directory類,則需包含contrib.hpp標頭檔案,此類的實現在contrib模組。
下面為測試程式碼:
cv::Directory dir; string path1 = "E:/data/image"; string exten1 = "*.bmp";//"*" bool addPath1 = false;//true; vector<string> filenames = dir.GetListFiles(path1, exten1, addPath1); cout <<"file names: "<<endl; for (int i = 0; i < filenames.size(); i++) cout<<filenames[i]<<endl; string path2 = "E:/data/image"; string exten2 = "*";//"Image*";//"*" bool addPath2 = true;//false vector<string> foldernames = dir.GetListFolders(path2, exten2, addPath2); cout <<"folder names: "<<endl; for (int i = 0; i < foldernames.size(); i++) cout<<foldernames[i]<<endl; string path3 = "E:/data/image"; string exten3 = "*"; bool addPath3 = true;//false vector<string> allfilenames = dir.GetListFilesR(path3, exten3, addPath3); cout<<"all file names: "<<endl; for (int i = 0; i < allfilenames.size(); i++) cout<<allfilenames[i]<<endl;