Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从OpenCV中的目录中按顺序读取文件?_C++_Opencv - Fatal编程技术网

C++ 如何从OpenCV中的目录中按顺序读取文件?

C++ 如何从OpenCV中的目录中按顺序读取文件?,c++,opencv,C++,Opencv,我是新手。我想读取目录中的XML文件。我使用的是FindFirstFile,但我不知道如何获取文件名作为输入提供给cvLoad。以下是我正在使用的代码: HANDLE hFind; WIN32_FIND_DATA FindFileData; wchar_t* file = L"D:\\zainb_s\\M.phil\\thesis\\dataset\\dataset_3\\RGB_3\\RGB\\s01_e01- Copy\\1_walking\\depth\\*.xml"; hFind =

我是新手。我想读取目录中的XML文件。我使用的是FindFirstFile,但我不知道如何获取文件名作为输入提供给cvLoad。以下是我正在使用的代码:

HANDLE hFind;
WIN32_FIND_DATA FindFileData;
wchar_t* file = L"D:\\zainb_s\\M.phil\\thesis\\dataset\\dataset_3\\RGB_3\\RGB\\s01_e01-   Copy\\1_walking\\depth\\*.xml";
hFind = FindFirstFile(file, &FindFileData);
cout << FindFileData.cFileName[0];
FindClose(hFind);
处理hFind;
WIN32_FIND_DATA FindFileData;
wchar\u t*file=L“D:\\zainb\u s\\M.phil\\thesis\\dataset\\dataset\u 3\\RGB\u 3\\RGB\\s01\u e01-Copy\\1\u walking\\depth\\\*.xml”;
hFind=FindFirstFile(文件和FindFileData);

cout如果您使用的是最新版本的OpenCV,最好避免使用特定于操作系统的方法:

vector<string> fn; // std::string in opencv2.4, but cv::String in 3.0
string path = "e:/code/vlc/faces2/*.png";
cv::glob(path,fn,false);
// Now you got a list of filenames in fn.
向量fn;//opencv2.4中的std::string,而3.0中的cv::string string path=“e:/code/vlc/faces2/*.png”; cv::glob(路径,fn,false); //现在您有了fn中的文件名列表。

(哦,同样,请避免使用不推荐的C-API函数,如cvLoad like hell!!)

那么您的问题是检测文件夹中的文件?你能使用像Qt或boost这样的附加库吗?是的。我想访问文件夹中的文件,想逐个访问它们的名称以加载以便进一步处理。我将如何使用这些库?正如我所说,我对Opencv和Cwow非常陌生。它工作得很好。非常感谢你,你这么快就解决了我的问题。太好了,我还不知道glob呢@berak cvLoad是我为数据集获得的解决方案,经过多次尝试后,它运行良好。我需要将其用于我的数据集。你能再帮我一件事吗?这段代码工作正常,但您必须知道cvLoad需要一个const char*,但这段代码给出的是字符串。你能帮帮我吗?我该怎么办?非常感谢你。我非常希望我的问题能在这里得到解决。每个字符串都有一个c_str();返回一个const char*.hey@berak的成员它正在为我工作。非常感谢。你能指导我一件事吗。当我使用IplImage*depth=(IplImage*)cvLoad(“depthImg190.xml”);它工作得很好。但是当我使用IplImage*depth=(IplImage*)cvLoad(filename);其中filename=“D:\\zainb\u s\\M.phil\\thesis\\dataset\\dataset\u 3\\RGB\u 3\\RGB\\s01\u e01-Copy\\1\u walking\\depth\\depthImg190.xml”cvLoad没有给我很好的结果。读取参数不是很好。你能告诉我这件事的原因吗?