glob()遍历文件夹中图像,以及保存
void glob(cv::String pattern, std::vector<cv::String>& result, bool recursive = false);
注意String是cv空间下的,不是std。glob遍历图像名称不是按顺序进行遍历的,1 10 11……19 20 21……;
当recursive为false时,仅仅遍历指定文件夹内符合模式的文件,当recursive为true时,会同时遍历指定文件夹的子文件夹。
cv::String path = "D:/data/*.jpg"; vector<cv::String> paths; glob(path, paths);//遍历结果存储到paths中,paths内容格式如,D:/data/3.jpg Mat srcImg, grayImg; for (int i = 0; i < paths.size(); i++) { srcImg = imread(paths[i]); cvtColor(srcImg, grayImg, CV_BGR2GRAY); // 生成灰度图,提高检测效率 …………其他代码………… }
【人脸检测案例】opencv detectMultiScale(),批量读取目录内图片
【参考】