C ++ читать в наборе изображений с разными именами файлов без жесткого кодирования

Есть ли какой-нибудь способ чтения набора изображений из файла, которые имеют разные имена друг другу, то есть вообще не преемственны?

Так что, если у вас было 4 изображения в одной папке с именами файлов:

  1. head.jpg
  2. shoulders.png
  3. knees.tiff
  4. toes.bmp

Без жесткого кодирования имен файлов напрямую, чтобы вы могли изменить shoulders.png сказать arms.gif, есть ли способ их загрузки?

В настоящее время у меня есть OpenCV и Boost

3

Решение

Для всех, кто интересуется:

#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
std::vector<cv::Mat> imageVec;
fs::path p (".");
fs::directory_iterator end_itr;
// cycle through the directory
for (fs::directory_iterator itr(p); itr != end_itr; ++itr){
// If it's not a directory, list it. If you want to list directories too, just remove this check.
if (fs::is_regular_file(itr->path())) {
if (fs::is_regular_file(itr->path())){
cv::Mat img;
img = cv::imread(itr->path().string());
if(img.data) imagesVecc.push_back(img);
}
// assign current file name to current_file and echo it out to the console.
std::string current_file = itr->path().string();
std::cout << current_file << std::endl;
}
}
2

Другие решения


По вопросам рекламы [email protected]