赞
踩
话不多说,直接上代码:
- int main()
- {
- //读入图片路径下的所有文件,D:\APP\VS\vs_projects_repos\Isp\images
- string imgdirpath="D:\\APP\\VS\\vs_projects_repos\\Isp\\proimages\\";
- // 只读取文件夹下的png的文件名,也可以改成“*.bmp”或者其他格式
- string imgpath = imgdirpath + "*.png";
- vector<String> filesVec;//注意只是读取存储文件名的具体路径,不是读取文件
- //遍历文件夹,两个参数分别表示文件的路径和保存图像具体路径的Vector容器。
- glob(imgpath, filesVec);
- if (filesVec.size() == 0)
- {
- cout << "File is empty!" << endl;
- return -1;
- }
- //此时,filesVec[]里面已经存放了具体到文件夹下各个文件名的路径
- //利用循环读取图片进行处理,换成自己想要处理的函数
- for (int i = 0; i < filesVec.size(); i++)
- {
- cout <<endl<< filesVec[i] <<" processing···"<< endl;
- Mat dst=imread(filesVec[i]);
- //读取自行处理
- //如何把处理的多张Mat图片再存到文件夹中可以看下面
- }
- return 0;
- }

vector<String> filesVec在glob()赋值后,filesVec[i]为string类型,如果需要改成char型才能处理,例如有一个自定义函数void rawread(const char* filename),可以在上面的循环加入如下操作:
- //将 string 类型的变量转换为 const char* 类型的参数
- Mat src = rawread(filesVec[i].c_str());//
对于如何把处理的多张Mat图片再存到文件夹中可以参考:http://t.csdn.cn/N3n1k
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。