Использовать файловую систему Boost для 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