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 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 <

vector 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

你可能感兴趣的:(c++,opencv,图像处理)