glob遍历文件夹下的所有图片

简介: glob遍历文件夹下的所有图片

void glob(String pattern, std::vector<String>& result, bool recursive = false);


当recursive为false时,仅仅遍历指定文件夹内符合模式的文件,当recursive为true时,会同时遍历指定文件夹的子文件夹。


由于glob遍历图像名称不是按顺序进行遍历的;在读取图像序列的时候经常要按顺序读取,如在多目标跟踪中;这时可以sort进行排序;


#include<iostream>
#include<vector>
#include<opencv2/opencv.hpp>
#include<string>
using namespace std;
using namespace cv;
//自定义排序函数  
bool sortFun(const cv::Point2d &p1, const cv::Point2d &p2)
{
  return p1.x < p2.x;//升序排列  
}
void main() {
  vector<String> imgFiles;
  vector<string> imgNames_;
  string imgsDir = "C:\\Users\\23913\\Desktop\\bottle_test_data\\JPEGImages";
  string pattern = imgsDir + "/" + string("*.jpg");
  glob(imgsDir, imgFiles, false);
  size_t count = imgFiles.size();
  if (count == 0) {
  cout << "this dir has no jpg!" << endl;
  return;
  }
  cout << "the num of jpgs:" << count << endl;
  for (int i = 0; i < count; i++) {
  //获取不带路径的文件名字
  size_t pos = imgFiles[i].find_last_of("/") + 1;
  string imgName = imgFiles[i].substr(pos, imgFiles[i].length() - pos);
  cout << imgName << endl;
  //获取不带后缀名的文件名
  string imgName_ = imgName.substr(0, imgName.rfind("."));
  imgNames_.emplace_back(imgName_);
  }
  sort(imgNames_.begin(), imgNames_.end(), [](string a, string b) {return stoi(a) < stoi(b); });
  for (int i = 0; i < imgNames_.size(); i++) {
  cout << imgNames_[i] << endl;
  }
  getchar();
}
相关文章
|
数据可视化 jenkins vr&ar
python3用ARIMA模型进行时间序列预测
python3用ARIMA模型进行时间序列预测
|
数据处理 Python
如何优化Python读取大文件的内存占用与性能
如何优化Python读取大文件的内存占用与性能
786 0
|
机器学习/深度学习 算法 数据挖掘
技术视界|多模态说话人开源项目3D-Speaker
技术视界|多模态说话人开源项目3D-Speaker
|
存储 前端开发 C#
WPF/C#:更改界面的样式
WPF/C#:更改界面的样式
204 0
|
Windows
LabVIEW播放视频文件的方法与例程
LabVIEW播放视频文件的方法与例程
311 1
|
数据安全/隐私保护
matlab 曲线光滑,去毛刺,去离群值,数据滤波,高通滤波,低通滤波,带通滤波,带阻滤波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
机器学习/深度学习 数据可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
|
存储 缓存 算法
ffmpeg 音视频同步进阶 剖析:ffmpeg音视频同步中特殊情况处理策略
ffmpeg 音视频同步进阶 剖析:ffmpeg音视频同步中特殊情况处理策略
609 0
|
SQL Java 程序员
Flume【问题记录 02】【java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument】【避坑指南】
【2月更文挑战第18天】Flume【问题记录 02】【java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument】【避坑指南】
263 0
|
前端开发 JavaScript
Layui上传文件时choose事件只触发一次的问题(两种解决方案+最终解决方案源码)
Layui上传文件时choose事件只触发一次的问题(两种解决方案+最终解决方案源码)
671 0