opencv中批量读取图片并保存
2016-05-12 21:13
316 查看
在生成训练集的时通常需要对文件夹中图片进行批处理,本文简要介绍图像批量读取、处理、保存的方法。
方法一:
1.生成图片描述文件
对于有多幅图像的文件夹,首先生成txt文件,保存图片路径。
在DOS模式下导入文件夹路径并生成TXT文件:
2.通过TXT批量处理图片
方法二:
利用Directory类实现文件夹中特定格式图像的遍历,Directory的头文件是windows.h。
参考文献:
【1】/article/2577923.html
方法一:
1.生成图片描述文件
对于有多幅图像的文件夹,首先生成txt文件,保存图片路径。
在DOS模式下导入文件夹路径并生成TXT文件:
2.通过TXT批量处理图片
<span style="font-size:18px;">#include<opencv2/opencv.hpp> #include<iostream> #include<time.h> #include<fstream> using namespace std; using namespace cv; void main() { ifstream file("C:/Users/Administrator/Desktop/date/MIT/MIT人脸库/faces/face.txt"); int img_index = 0; while (!file.eof()) { char txt_cont[200]; file.getline(txt_cont,200); char img_file[200],save_file[200]; sprintf(img_file, "C:/Users/Administrator/Desktop/date/MIT/MIT人脸库/faces/%s", txt_cont); sprintf(save_file, "C:/Users/Administrator/Desktop/date/MIT/MIT人脸库/save/%d.jpg", img_index); Mat src = imread(img_file); img_index++; imwrite(save_file,src); } }</span>
方法二:
利用Directory类实现文件夹中特定格式图像的遍历,Directory的头文件是windows.h。
#include<opencv2/opencv.hpp> #include<iostream> #include<vector> #include<string> #include <windows.h> using namespace std; using namespace cv; void main() { Directory dir; string path1 = "C:\\Users\\Administrator\\Desktop\\date\\MIT\\MIT人脸库\\faces"; string exten1 = "*.bmp"; vector<string> filenames = dir.GetListFiles(path1, exten1, false); int size = filenames.size(); for (int i = 0; i < size;i++) { cout << filenames[i] << endl; } }
参考文献:
【1】/article/2577923.html
相关文章推荐
- 15分钟熟悉HBase Shell命令
- 平安金融PaaS技术实践:DevOps困局、PaaS及时到来、Dev做好准备
- 使用linux系统函数和c++03类写的一个简单线程池
- Linux学习之初期计划(初稿)
- 每秒处理10万订单乐视集团支付架构
- CentOS硬软链接
- 亿级用户下的新浪微博平台架构
- maven 发布项目到tomcat
- MySQL高可用方案
- 编译Linux/Android 输出很多信息很难找到错误/警告信息怎么办?
- 【CS231n winter2016 Lecture 3 (Linear classification II/loss function/optimization/SGD)】
- Linux编程常用
- Nginx 编译安装
- linux相关
- Linux基础之:curl工具的使用
- Linux 设备驱动框架
- Linux监控cpu以及内存使用情况之top命令
- 我常浏览的网站和开发工具下载地址
- 教您如何从ECSHOP整站中提取单独模板的方法
- CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解