主要函数
void cv::glob(String pattern,std::vector<string>&result,bool recursive=false)
分析
String pattern:绝对路径下的照片
pattern = "/home/Data/data/*.jpg": 选择*.jpg这一类的图片
std::vector< cv::String > & result:这里必须为CV的String,即路径被存在string类型的vector中
bool recursive:可省去,当recursive为false时,仅仅遍历指定文件夹内符合模式的文件;当recursive为true时,会同时遍历指定文件夹的子文件夹
程序
Ve.cpp
#include "Ve.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
cv::String pattern="/home/thorking/Data/data/*.jpg";
Ve ve;
vector<Mat> img=ve.ReadImage(pattern);
return 0;
}
vector<Mat> Ve::ReadImage(cv::String pattern)
{
vector<cv::String> fn;
glob(pattern, fn, false);
vector<Mat> images;
size_t count = fn.size(); //number of png files in images folder
for (size_t i = 0; i < count; i++)
{
images.emplace_back(cv::imread(fn[i]));
imshow("img", imread(fn[i]));
waitKey(0);
}
return images;
}
Ve.h
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
class Ve {
public:
vector<Mat> ReadImage(cv::String pattern);
};