C++的opencv中glob的使用
时间: 2023-09-25 13:12:20 浏览: 375
在C++的OpenCV中,glob函数可以用来获取指定路径下所有符合特定规则的文件路径。
glob函数的原型如下:
```cpp
int glob(const char* pattern, int flags, void(*errfunc)(const char*, int), glob_t* pglob);
```
其中,pattern表示要匹配的路径和文件名,flags是匹配规则,errfunc是错误回调函数,pglob是一个glob_t类型指针,用于返回匹配到的所有文件路径。
下面是一个示例代码,用于获取指定路径下所有的jpg文件路径:
```cpp
#include <iostream>
#include <glob.h>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
glob_t glob_res;
Mat img;
string path = "path/to/images/*.jpg";
// 获取所有jpg文件路径
glob(path.c_str(), GLOB_TILDE, NULL, &glob_res);
// 遍历所有jpg文件并读取
for(unsigned int i = 0; i < glob_res.gl_pathc; i++)
{
img = imread(glob_res.gl_pathv[i]);
imshow("image", img);
waitKey(0);
}
// 释放资源
globfree(&glob_res);
return 0;
}
```
在上述代码中,GLOB_TILDE是flags参数的值,表示自动将~扩展为用户的主目录。
需要注意的是,glob函数会将所有匹配到的文件路径存储在glob_t结构体中,因此在使用完后需要调用globfree函数释放资源。
阅读全文