Visual Servoing Platform  version 3.3.0 under development (2020-02-17)
testXmlConfigParserKeyPoint.cpp
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2019 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * See the file LICENSE.txt at the root directory of this source
11  * distribution for additional information about the GNU GPL.
12  *
13  * For using ViSP with software that can not be combined with the GNU
14  * GPL, please contact Inria about acquiring a ViSP Professional
15  * Edition License.
16  *
17  * See http://visp.inria.fr for more information.
18  *
19  * This software was developed at:
20  * Inria Rennes - Bretagne Atlantique
21  * Campus Universitaire de Beaulieu
22  * 35042 Rennes Cedex
23  * France
24  *
25  * If you have questions regarding the use of this file, please contact
26  * Inria at visp@inria.fr
27  *
28  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30  *
31  * Description:
32  * Test vpXmlConfigParserKeyPoint parse / save.
33  *
34  *****************************************************************************/
35 
42 #include <visp3/vision/vpXmlConfigParserKeyPoint.h>
43 #include <visp3/core/vpIoTools.h>
44 
45 int main()
46 {
47 #ifdef VISP_HAVE_PUGIXML
48  std::string visp_images_dir = vpIoTools::getViSPImagesDataPath();
49  if (vpIoTools::checkDirectory(visp_images_dir + "/xml")) {
50  double eps = std::numeric_limits<double>::epsilon();
51  {
52  std::string filename = visp_images_dir + "/xml/detection-config.xml";
54  xml.parse(filename);
55 
56  if (xml.getDetectorName() != "FAST" ||
57  xml.getExtractorName() != "ORB" ||
58  xml.getMatcherName() != "BruteForce-Hamming" ||
60  !vpMath::equal(xml.getMatchingRatioThreshold(), 0.8, eps) ||
63  !vpMath::equal(xml.getRansacConsensusPercentage(), 20.0, eps) ||
64  xml.getNbRansacIterations() != 200 ||
65  !vpMath::equal(xml.getRansacThreshold(), 0.005, eps)) {
66  std::cerr << "Issue when parsing xml: " << filename << std::endl;
67  return EXIT_FAILURE;
68  }
69  }
70 
71  {
72  std::string filename = visp_images_dir + "/xml/detection-config-SIFT.xml";
74  xml.parse(filename);
75 
76  if (xml.getDetectorName() != "SIFT" ||
77  xml.getExtractorName() != "SIFT" ||
78  xml.getMatcherName() != "BruteForce" ||
80  !vpMath::equal(xml.getMatchingRatioThreshold(), 0.8, eps) ||
83  !vpMath::equal(xml.getRansacConsensusPercentage(), 20.0, eps) ||
84  xml.getNbRansacIterations() != 200 ||
85  !vpMath::equal(xml.getRansacThreshold(), 0.005, eps)) {
86  std::cerr << "Issue when parsing xml: " << filename << std::endl;
87  return EXIT_FAILURE;
88  }
89  }
90  }
91 #endif
92 
93  return EXIT_SUCCESS;
94 }
static std::string getViSPImagesDataPath()
Definition: vpIoTools.cpp:1292
vpMatchingMethodEnum getMatchingMethod() const
static bool equal(double x, double y, double s=0.001)
Definition: vpMath.h:296
static bool checkDirectory(const std::string &dirname)
Definition: vpIoTools.cpp:422
void parse(const std::string &filename)