C++读取文件夹下多个文件,包括图片等等

话不多说,直接上代码:

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值