C++ Opencv 读取指定路径中的所有文件(图片)及指定路径中指定格式的所有文件(图片)
生活随笔
收集整理的這篇文章主要介紹了
C++ Opencv 读取指定路径中的所有文件(图片)及指定路径中指定格式的所有文件(图片)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讀取指令路徑下的所有文件,程序如下:
#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 intstruct _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 intstruct _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]);}}
運行結果如下
結尾附本人的另一篇文章_finddata_t _findfirst(), _findnext(), _findclose() 函數講解,如果大家有需要了解的自行參考:
https://blog.csdn.net/duiwangxiaomi/article/details/98186672
總結
以上是生活随笔為你收集整理的C++ Opencv 读取指定路径中的所有文件(图片)及指定路径中指定格式的所有文件(图片)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV 2.4.9-2.4.13各
- 下一篇: C++ OpenCV创建xml,yml文