在单张调试图像效果时,可以将算法单次运行,以调试效果。但是,如果图像多到几万张时,我们就需要掌握批量处理图像的方法。在前辈的基础上做了微调。

string gallery_path = "D:\\1.jpg";//批量处理图像的路径
string probe_path = "D:\\……";//处理之后需要批量存入的路径
vector<string> gallery_folders = listDir(gallery_path);
for (int g = 0; g < gallery_folders.size(); g++){//vector<string> image_list = listFile(gallery_path + "\\" + gallery_folders.at(g), "png");vector<string> image_list = listFile( gallery_folders.at(g), "png");for (int f = 0; f < image_list.size(); f++){int m = image_list.size();cout << m << endl;/*cout << gallery_path + "\\" + gallery_folders.at(g) + "\\" + image_list.at(f) << endl;*/string ga = gallery_folders.at(g);cout << "gallery_folders.at(g):  " << ga << endl;string ss = image_list.at(f);//this is picture numbercout << "image_list.at(f)" << ss << endl;//string filename = gallery_path + "\\" + gallery_folders.at(g) + "\\" + image_list.at(f);string filename = gallery_folders.at(g) ; Mat srcImage, grayImage;srcImage = imread(filename);//srcImage.convertTo(srcImage, CV_16UC1);//Show_Function(srcImage);//Show_Function1(srcImage, image_list.at(f));string filename_end = probe_path+"\\" + image_list.at(f);imwrite(filename_end, OutputImage);//grayImage    dst img1}}
vector<string> listFile(string path, string format) {vector<string> files;//文件句柄    intptr_t hFile = 0;//文件信息    struct _finddata_t fileinfo;string p;//if ((hFile = _findfirst(p.assign(path).append("\\*." + format).c_str(), &fileinfo)) != -1)if ((hFile = _findfirst(p.assign(path).c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );  GetAllFormatFiles(p.assign(fileinfo.name), files, format);}}else{files.push_back(p.assign(fileinfo.name));  //将文件路径保存,也可以只保存文件名:    p.assign(path).append("\\").append(fileinfo.name)  }} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}return files;
}
//获取特定格式的文件名
void GetAllFormatFiles(string path, vector<string>& files, string format) {files.clear();//文件句柄    intptr_t hFile = 0;//文件信息    struct _finddata_t fileinfo;string p;if ((hFile = _findfirst(p.assign(path).append("/*." + format).c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );  GetAllFormatFiles(p.assign(path).append("/").append(fileinfo.name), files, format);}}else{files.push_back(p.assign(fileinfo.name));  //将文件路径保存,也可以只保存文件名:    p.assign(path).append("\\").append(fileinfo.name)  }} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

https://blog.csdn.net/lingmengxiaotong/article/details/87266648?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link

C++与OpenCV同时批量处理图像数据相关推荐

  1. 【Linux-Windows】通过浏览器批量下载图像数据

    [Linux-Windows]通过浏览器批量下载图像数据 1.背景 2.浏览器扩展 3.批量下载图像 1.背景 浏览器本博客选的是Microsoft Edge浏览器, Microsoft Edge由微 ...

  2. python批量实现图像数据增强(扩增)

    什么是数据扩增? 数据扩增是对数据进行扩充的方法的总称.数据扩增可以增加训练集的样本,可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力. 通常在进行数据扩增操作的时候应该保持图像原本的标 ...

  3. 事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R

    验证程序的源码如下(用到的图像下载链接为Red_pic.jpg_免费高速下载|百度网盘-分享无限制): 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料 ...

  4. 使用OpenCV和NumPy处理图像数据时,出现显示异常,图片经常出现空白

    1 前言 还是想念Java,希望Java能吸收Python的特性,变得更加强大! 2 问题描述 今天在用NumPy库处理图像数据时,出现一个问题,任务是需要写一个中值滤波的算法,算法其实不是很难,不过 ...

  5. 批量修改图片名及批量进行图像数据预处理

    1.批量修改文件名:首先声明所有图片所在的文件夹路径GOOD_dirpath,然后用os库的listdir函数遍历,再用rename方法进行改名,如下: num=1 #图片序号 for img_nam ...

  6. C语言使用指针处理opencv中的Mat图像数据

    1.在处理图像时,一般直接使用opencv中的imread函数获取图片,但是获取到图片后没有用到opencv中的其他算法时,直接用图片处理就会出现耗时严重的情况,所以需要将图片形式转换成指针数组形式处 ...

  7. OpenCv中批量读取图片数据并显示出来的C++程序

    /*************************************************************************************************** ...

  8. OpenCV中利用cvConvertScale()对图像数据作线性变换

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV的IplImage结构体char ...

  9. OpenCV图像数据访问,查询表和时间消耗测试

    OpenCV图像数据访问, 查询表和时间消耗测试 代码示例 #include <opencv2/core.hpp> #include <opencv2/core/utility.hp ...

最新文章

  1. steamvr unity 连接眼镜_150度FOV,自研显示方案,Kura公布全新AR眼镜Gallium
  2. CIO:辩证看待云计算 游戏规则已改变
  3. leetcode 43. 字符串相乘(Multiply Strings)
  4. 【C++学习笔记一】C++类和对象详解
  5. 【Java】ArrayList 为啥要实现 RandomAccess 接口
  6. JAVA和C#,武当和少林之争!
  7. SpringBoot------集成PageHelper分页功能
  8. 关于spring注入
  9. vue 第三天(绑定属性)
  10. ios控件 UIViewController
  11. 一次http请求中的信息
  12. 图片上传经过jwt_SpringSecurity整合Jwt过程图解
  13. 状态机,从细节出发(一段式、两段式、三段式,moore型、mealy型)
  14. 《光剑文集》春心沁透: 99首
  15. ofo押金未退仍在自动续费上热搜,曾经的明星公司是怎么黄的?
  16. Azido-TAT,大环化合物,双功能螯合剂的性质
  17. Internet Explorer无法打开Internet站点
  18. 一个记账易app开发
  19. moment.js时间操作
  20. Vue3+Vite+TypeScript项目开发

热门文章

  1. java excel 单元格 斜线_JAVA POI EXCEl单元格内部分字符设置样式 HSSFRichTextString用法...
  2. 谁来拯救中国的语言文学
  3. 【cocos精品】《梦幻西游》全面制霸苹果榜单 四榜登顶
  4. 简体和繁体之间的转换
  5. 东梓关富春江畔有感  文/江湖一劍客
  6. 无纸化会议转型,做可持续发展企业
  7. 沉浸其中,二次元高清图片
  8. Java详解:java对象转json字符串不加引号
  9. Sublime Text3 配置LaTex编辑器
  10. 失恋后同学对我的劝告。。。。表谢意