使用OpenCV(C ++)读取文件夹中的任何.jpg图像

时间:2017-02-01 08:25:19

标签: c++ opencv opencv3.0

我有一个包含一些图像的文件夹。我没有图像文件的名称。我正在使用openCV和C ++。我想读取文件夹中的任何.jpeg图像,并在读取图像时将此图像的文件名作为字符串。可能吗?我可以使用imread方法吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您有权访问boost:

boost::filesystem::directory_iterator itr(boost::filesystem::path("your_folder_path"));

for(itr; itr != boost::filesystem::directory_iterator(); ++itr)
{
    if(itr->path().extension().string() == ".jpg")
    {
        std::string imageFilename = itr->path().filename().string();
        imread(imageFilename);
    }
}

如果您没有/不想使用boost,可以使用cv::glob获取目录中的文件列表:

vector<String> filenames;

// Get all jpg in the folder
cv::glob("your/folder/name/*.jpg", filenames);

for (size_t i=0; i<filenames.size(); i++)
{
    Mat im = imread(filenames[i]);
}