MCPcopy Create free account
hub / github.com/AllentDan/LibtorchTutorials / loadXML

Function loadXML

lesson7-Detection/src/DetDataset.cpp:5–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3#include "utils/readfile.h"
4
5std::vector<BBox> loadXML(std::string xml_path)
6{
7 std::vector<BBox> objects;
8 // XML�ĵ�
9 TiXmlDocument doc;
10 // ����XML�ĵ�
11 if (!doc.LoadFile(xml_path.c_str()))
12 {
13 std::cerr << doc.ErrorDesc() << std::endl;
14 return objects;
15 }
16
17 // ������ڵ��������ֵΪ�ĵ��ĵ�һ�����ڵ�
18 TiXmlElement *root = doc.FirstChildElement();
19 // ���û���ҵ����ڵ�,˵���ǿ�XML�ĵ����߷�XML�ĵ�
20 if (root == NULL)
21 {
22 std::cerr << "Failed to load file: No root element." << std::endl;
23 // �����ڴ�
24 doc.Clear();
25 return objects;
26 }
27
28 // �����ӽڵ�
29 for (TiXmlElement *elem = root->FirstChildElement(); elem != NULL; elem = elem->NextSiblingElement())
30 {
31 // ��ȡԪ����
32 std::string elemName = elem->Value();
33 std::string name = "";
34 // ��ȡԪ������ֵ
35 if (strcmp(elemName.data(), "object") == 0)
36 {
37 for (TiXmlNode *object = elem->FirstChildElement(); object != NULL; object = object->NextSiblingElement())
38 {
39 if (strcmp(object->Value(), "name") == 0)
40 {
41 name = object->FirstChild()->Value();
42 }
43
44 if (strcmp(object->Value(), "bndbox") == 0)
45 {
46 BBox obj;
47 TiXmlElement * xmin = object->FirstChildElement("xmin");
48 TiXmlElement * ymin = object->FirstChildElement("ymin");
49 TiXmlElement * xmax = object->FirstChildElement("xmax");
50 TiXmlElement * ymax = object->FirstChildElement("ymax");
51
52 obj.xmin = atoi(std::string(xmin->FirstChild()->Value()).c_str());
53 obj.xmax = atoi(std::string(xmax->FirstChild()->Value()).c_str());
54 obj.ymin = atoi(std::string(ymin->FirstChild()->Value()).c_str());
55 obj.ymax = atoi(std::string(ymax->FirstChild()->Value()).c_str());
56 obj.name = name;
57 objects.push_back(obj);
58 }
59
60 //cout << bndbox->Value() << endl;
61 }
62 }

Callers 1

getMethod · 0.85

Calls 10

c_strMethod · 0.80
ErrorDescMethod · 0.80
dataMethod · 0.80
push_backMethod · 0.80
LoadFileMethod · 0.45
FirstChildElementMethod · 0.45
ClearMethod · 0.45
NextSiblingElementMethod · 0.45
ValueMethod · 0.45
FirstChildMethod · 0.45

Tested by

no test coverage detected