原函数:
void cv::glob(String pattern,std::vector<string>&result,bool recursive=false)
bool recursive //可省去
//当recursive为false时,仅仅遍历指定文件夹内符合模式的文件,
//当recursive为true时,会同时遍历指定文件夹的子文件夹
具体应用:
void getimages()
{
vector<Mat>images;
std::string pattern="./img/*.jpg"; //具体路径
std::vector<cv::String> image_file; //important,必须为CV的String
glob(pattern, image_file); //必须为CV的String
for(int i=0;i<image_file.size();i++)
{
images.push_back(imread(image_file[i]));
}
}
拓展:利用boost::filesystem
#include <boost/filesystem.hpp> //boost.filesystem以实现可移植的文件系统的操作为目标
using namespace boost::filesystem; //利用boost::filesystem directory_iterator迭代器
//读取图像
for (directory_iterator i(path), end_iter; i != end_iter; i++)
{
string filename = path + i->path().filename().string();
images.push_back(imread(filename));
}