Opencv中遍历文件夹下的图片及存储

我用的运行环境是Opencv2.4.13+VS2017。今天在做实验的时候,要求对一个图片集进行处理,并且图片的命名不是简单的1,2,3这样的序列号,是无规则的,研究了一下。

首先,是从文件夹里依次读取出图片,主要代码如下:

string traverse(int i)
{   
    string fileFullName;
    string dir_path = "E:\\CourseTests\\files\\pos\\";//图片集的存储路径
    Directory dir;
    vector<string> fileNames = dir.GetListFiles(dir_path, "*.jpg", false);
    if (i < fileNames.size())
    {
        string fileName = fileNames[i];//取得图片的名字
        fileFullName = dir_path + fileName;//得到图片集中一张图片的具体路径

    }  
    return fileFullName;
}

之后,只需要调用读取图片的函数,就可以了,代码如下:

cv::Mat srcImage = cv::imread(bianli(i));

图片读取成功了,接下来就是将经过操作的图片依次存入自己新建的文件夹中,代码如下:

string fileFullName2;
string dir_path = "E:\\CourseTests\\files\\pos\\";
Directory dir;
vector<string> fileNames = dir.GetListFiles(dir_path, "*.jpg", false);
string fileName = fileNames[i];
fileFullName2 = "E:\\CourseTests\\files\\neg\\" + fileName;//图片的存储路径,并且以图片之前的名字命名
imwrite(fileFullName2, image);
好了,到此,就完成了图片集的遍历和存储。第一次写博客,请多多指教。

没有更多推荐了,返回首页