读取指令路径下的所有文件,程序如下:
#include <io.h>
#include < fstream>
#include < string>
#include <vector>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
//读入指定文件夹下的所有文件
void getFiles(string path, vector<string>& files)
{
intptr_t hFile = 0;//intptr_t和uintptr_t是什么类型:typedef long int/ typedef unsigned long int
struct _finddata_t fileinfo;
string p;
if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1)//assign方法可以理解为先将原字符串清空,然后赋予新的值作替换。
{
do
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
//这句有点不明白,如果不加,识别的文件里就有.和..两个文件,哪位大神可以给解释下?感激不尽!!!
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
}
}while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
//调用
int main()
{
string filePath = "E:\\IME\\"; //正样本路径
vector<string> files;
getFiles(filePath, files);
int number = files.size();//文件数量
for (int i = 0; i < number; i++)
{
Mat img = imread(files[i]);
}
}
运行结果如下
读取文件夹下指定格式的所有文件,本程序是读取文件夹下所有jpg图片
#include <io.h>
#include < fstream>
#include < string>
#include <vector>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
//读入文件夹下指定格式的所有文件,本程序是读取文件夹下所有jpg图片
void getFiles(string path, string file_format, vector<string>& files)
{
intptr_t hFile = 0;//intptr_t和uintptr_t是什么类型:typedef long int/ typedef unsigned long int
struct _finddata_t fileinfo;
string p, file_formatName;
if (0 != strcmp(file_format.c_str(), ""))
{
file_formatName = "\\*." + file_format;
}
else
{
file_formatName = "\\*";
}
if ((hFile = _findfirst(p.assign(path).append(file_formatName).c_str(), &fileinfo)) != -1)//assign方法可以理解为先将原字符串清空,然后赋予新的值作替换。
{
do
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
}while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
//调用
int main()
{
string filePath = "E:\\IME\\Job\\Test Images\\im_raw\\"; //正样本路径
vector<string> files;
string file_format = "jpg";
getFiles(filePath, file_format, files);
int number = files.size();//文件数量
for (int i = 0; i < number; i++)
{
Mat img = imread(files[i]);
}
}
运行结果如下