Visual Servoing Platform  version 3.4.0
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  std::string visp_images_dir = vpIoTools::getViSPImagesDataPath();
48  if (vpIoTools::checkDirectory(visp_images_dir + "/xml")) {
49  double eps = std::numeric_limits<double>::epsilon();
50  {
51  std::string filename = visp_images_dir + "/xml/detection-config.xml";
53  xml.parse(filename);
54 
55  if (xml.getDetectorName() != "FAST" ||
56  xml.getExtractorName() != "ORB" ||
57  xml.getMatcherName() != "BruteForce-Hamming" ||
59  !vpMath::equal(xml.getMatchingRatioThreshold(), 0.8, eps) ||
62  !vpMath::equal(xml.getRansacConsensusPercentage(), 20.0, eps) ||
63  xml.getNbRansacIterations() != 200 ||
64  !vpMath::equal(xml.getRansacThreshold(), 0.005, eps)) {
65  std::cerr << "Issue when parsing xml: " << filename << std::endl;
66  return EXIT_FAILURE;
67  }
68  }
69 
70  {
71  std::string filename = visp_images_dir + "/xml/detection-config-SIFT.xml";
73  xml.parse(filename);
74 
75  if (xml.getDetectorName() != "SIFT" ||
76  xml.getExtractorName() != "SIFT" ||
77  xml.getMatcherName() != "BruteForce" ||
79  !vpMath::equal(xml.getMatchingRatioThreshold(), 0.8, eps) ||
82  !vpMath::equal(xml.getRansacConsensusPercentage(), 20.0, eps) ||
83  xml.getNbRansacIterations() != 200 ||
84  !vpMath::equal(xml.getRansacThreshold(), 0.005, eps)) {
85  std::cerr << "Issue when parsing xml: " << filename << std::endl;
86  return EXIT_FAILURE;
87  }
88  }
89  }
90 
91  return EXIT_SUCCESS;
92 }
static std::string getViSPImagesDataPath()
Definition: vpIoTools.cpp:1202
static bool equal(double x, double y, double s=0.001)
Definition: vpMath.h:293
static bool checkDirectory(const std::string &dirname)
Definition: vpIoTools.cpp:332
vpMatchingMethodEnum getMatchingMethod() const
void parse(const std::string &filename)