0
多个图像我有一个包含100个或更多的子文件夹,一个文件夹,每个都包含许多图像。(加州理工学院数据库)opencv的阅读从多个文件夹
我有如何从不同的文件夹阅读的问题?
我想将它们存储为每个图像的堆叠柱的单个矩阵。
多个图像我有一个包含100个或更多的子文件夹,一个文件夹,每个都包含许多图像。(加州理工学院数据库)opencv的阅读从多个文件夹
我有如何从不同的文件夹阅读的问题?
我想将它们存储为每个图像的堆叠柱的单个矩阵。
使用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。
谢谢,我用back_inserter来做递归的事情。它效果很好。 – user3515225