有时候我们需要批量载入图片以进行后续处理,而这些图片放置在某个文件夹下,现在来看看如何实现。
浏览文件夹的功能可以参考这篇文章(在MFC中实现“浏览文件夹”功能),本文略去这一步。
作为示例,我们编写Console程序输入文件夹路径,设置扩展名,完整代码(有详细注释)如下
#include <io.h> // _finddata_t结构, _access(), _findfile()等
#include <direct.h> //_chdir()目录操作
#include <iostream>
#include <fstream>
#include <sstream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#pragma comment(lib,"opencv_core249.lib")
#pragma comment(lib,"opencv_highgui249.lib")
using namespace cv;
using namespace std;
// 最多支持50张图片,可根据需要修改(但这个数字不能太大)
#define MAX_COUNT 50
//搜索folder目录下扩展名为ext的文件,将文件完整路径写入fileNames
int TraverseFolder(const string& folder, const string& extension, vector<string>& fileNames);
//载入folder目录下扩展名为ext的图片(数目不超过maxCount),存放在images容器中
int LoadImages(const string& folder, const string& extension, vector<Mat>& images, const int maxCount);
int main(void)
{
system("C