1. 获取文件名称
1)获取指定路径之下,符合特定模式的文件列表,可以用于批量读取、处理多个文件。
cv::glob(const String& pattern, std::vector<String>& filenames, bool recursive = false)
① pattern:指定文件路径和模式,可以使用*.jpg来匹配所有以.jpg所有的文件;
② filenames:vecetor容器,用于存储匹配到的文件名;
③ recursive:布尔值,是否递归搜索文件夹,默认为false,即只搜索指定路径下的文件夹
2)将指定文件夹中的满足条件的名称放入容器中,一般与cv::imread(path)等结合使用。
2. 使用方法
1)函数调用成功之后, filenames中将包含所有匹配到的文件名,可以遍历filenames,对每
个文件进行处理;
#include <iostream> #include <opencv2/opencv.hpp> int main() { std::vector<cv::String> filenames; cv::glob("path/to/images/*.jpg", filenames); for (const auto& filename : filenames) { cv::Mat image = cv::imread(filename); if (image.empty()) { std::cout << "无法读取图像:" << filename << std::endl; continue; } // 对图像进行处理... cv::imshow("Image", image); cv::waitKey(0); } return 0; }