C++与OpenCV同时批量处理图像数据
在单张调试图像效果时,可以将算法单次运行,以调试效果。但是,如果图像多到几万张时,我们就需要掌握批量处理图像的方法。在前辈的基础上做了微调。
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同时批量处理图像数据相关推荐
- 【Linux-Windows】通过浏览器批量下载图像数据
[Linux-Windows]通过浏览器批量下载图像数据 1.背景 2.浏览器扩展 3.批量下载图像 1.背景 浏览器本博客选的是Microsoft Edge浏览器, Microsoft Edge由微 ...
- python批量实现图像数据增强(扩增)
什么是数据扩增? 数据扩增是对数据进行扩充的方法的总称.数据扩增可以增加训练集的样本,可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力. 通常在进行数据扩增操作的时候应该保持图像原本的标 ...
- 事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R
验证程序的源码如下(用到的图像下载链接为Red_pic.jpg_免费高速下载|百度网盘-分享无限制): 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料 ...
- 使用OpenCV和NumPy处理图像数据时,出现显示异常,图片经常出现空白
1 前言 还是想念Java,希望Java能吸收Python的特性,变得更加强大! 2 问题描述 今天在用NumPy库处理图像数据时,出现一个问题,任务是需要写一个中值滤波的算法,算法其实不是很难,不过 ...
- 批量修改图片名及批量进行图像数据预处理
1.批量修改文件名:首先声明所有图片所在的文件夹路径GOOD_dirpath,然后用os库的listdir函数遍历,再用rename方法进行改名,如下: num=1 #图片序号 for img_nam ...
- C语言使用指针处理opencv中的Mat图像数据
1.在处理图像时,一般直接使用opencv中的imread函数获取图片,但是获取到图片后没有用到opencv中的其他算法时,直接用图片处理就会出现耗时严重的情况,所以需要将图片形式转换成指针数组形式处 ...
- OpenCv中批量读取图片数据并显示出来的C++程序
/*************************************************************************************************** ...
- OpenCV中利用cvConvertScale()对图像数据作线性变换
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV的IplImage结构体char ...
- OpenCV图像数据访问,查询表和时间消耗测试
OpenCV图像数据访问, 查询表和时间消耗测试 代码示例 #include <opencv2/core.hpp> #include <opencv2/core/utility.hp ...
最新文章
- steamvr unity 连接眼镜_150度FOV,自研显示方案,Kura公布全新AR眼镜Gallium
- CIO:辩证看待云计算 游戏规则已改变
- leetcode 43. 字符串相乘(Multiply Strings)
- 【C++学习笔记一】C++类和对象详解
- 【Java】ArrayList 为啥要实现 RandomAccess 接口
- JAVA和C#,武当和少林之争!
- SpringBoot------集成PageHelper分页功能
- 关于spring注入
- vue 第三天(绑定属性)
- ios控件 UIViewController
- 一次http请求中的信息
- 图片上传经过jwt_SpringSecurity整合Jwt过程图解
- 状态机,从细节出发(一段式、两段式、三段式,moore型、mealy型)
- 《光剑文集》春心沁透: 99首
- ofo押金未退仍在自动续费上热搜,曾经的明星公司是怎么黄的?
- Azido-TAT,大环化合物,双功能螯合剂的性质
- Internet Explorer无法打开Internet站点
- 一个记账易app开发
- moment.js时间操作
- Vue3+Vite+TypeScript项目开发