Opencv从多个文件夹中读取多个图像

时间:2015-01-12 14:06:57

标签: opencv matrix

我有一个包含100个或更多子文件夹的文件夹,每个子文件夹包含许多图像。(Caltech数据库)

我对如何从不同文件夹中读取它们有疑问?

我想将它们存储为单个矩阵,每个图像都有堆叠列。

1 个答案:

答案 0 :(得分:2)

使用Boost Filesystem for C ++。您可以加载目录中的所有文件,并将文件位置以字符串形式传递给OpenCV。

    string folder = "../images/";
    vector<string> imageFileLocations;
    namespace fs = boost::filesystem;
    vec v;
    copy(fs::directory_iterator(folder), fs::directory_iterator(), back_inserter(v));
    sort(v.begin(), v.end());
    for (vec::const_iterator it(v.begin()); it != v.end(); ++it) {
        if (fs::is_regular_file(*it)) {
            string location = it->string();
            imageFileLocations.push_back(location);
        }
    }

你必须添加一些递归的东西才能进入其他文件夹。你可以通过检查iteraotr是在文件还是文件夹来做到这一点。有关示例,请参阅Boost website