我有一个包含一些图像的文件夹。我没有图像文件的名称。我正在使用openCV和C ++。我想读取文件夹中的任何.jpeg图像,并在读取图像时将此图像的文件名作为字符串。可能吗?我可以使用imread
方法吗?
感谢您的帮助
答案 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]);
}