From 122e1ca6cce616b4b9724fb8cec88ff149a384e1 Mon Sep 17 00:00:00 2001 From: asantamaria <asantamaria@iri.upc.edu> Date: Sat, 5 May 2018 23:08:37 +0200 Subject: [PATCH] Add conditional YAML read for matchers --- .../bruteforce/matcher_bruteforce_load_yaml.cpp | 13 ++++++++----- .../matcher_bruteforce_hamming_load_yaml.cpp | 12 ++++++++---- .../matcher_bruteforce_hamming_2_load_yaml.cpp | 12 ++++++++---- .../matcher_bruteforce_l1_load_yaml.cpp | 12 ++++++++---- .../flannbased/matcher_flannbased_load_yaml.cpp | 12 ++++++++---- 5 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp index 994843b..3b4dfc0 100644 --- a/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp +++ b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp @@ -21,13 +21,16 @@ static ParamsBasePtr createParamsBRUTEFORCEMatcher(const std::string & _filename if (!yaml_params.IsNull()) { Node d_yaml = yaml_params["matcher"]; - if(d_yaml["type"].as<string>() == "BRUTEFORCE") { - params_ptr->match_type = d_yaml["match type"].as<int>(); - params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); - params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); - params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["match type"]) + params_ptr->match_type = d_yaml["match type"].as<int>(); + if (d_yaml["min normalized score"]) + params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["roi"]["width"]) + params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); + if (d_yaml["roi"]["height"]) + params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; diff --git a/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp b/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp index 3b59654..002b3bd 100644 --- a/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp +++ b/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp @@ -23,10 +23,14 @@ static ParamsBasePtr createParamsBRUTEFORCE_HAMMINGMatcher(const std::string & _ Node d_yaml = yaml_params["matcher"]; if(d_yaml["type"].as<string>() == "BRUTEFORCE_HAMMING") { - params_ptr->match_type = d_yaml["match type"].as<int>(); - params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); - params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); - params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["match type"]) + params_ptr->match_type = d_yaml["match type"].as<int>(); + if (d_yaml["min normalized score"]) + params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["roi"]["width"]) + params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); + if (d_yaml["roi"]["height"]) + params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; diff --git a/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2_load_yaml.cpp b/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2_load_yaml.cpp index a5b878f..0d8c913 100644 --- a/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2_load_yaml.cpp +++ b/src/matchers/bruteforce_hamming_2/matcher_bruteforce_hamming_2_load_yaml.cpp @@ -23,10 +23,14 @@ static ParamsBasePtr createParamsBRUTEFORCE_HAMMING_2Matcher(const std::string & Node d_yaml = yaml_params["matcher"]; if(d_yaml["type"].as<string>() == "BRUTEFORCE_HAMMING_2") { - params_ptr->match_type = d_yaml["match type"].as<int>(); - params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); - params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); - params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["match type"]) + params_ptr->match_type = d_yaml["match type"].as<int>(); + if (d_yaml["min normalized score"]) + params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["roi"]["width"]) + params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); + if (d_yaml["roi"]["height"]) + params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; diff --git a/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp b/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp index 8d8b557..bd10edb 100644 --- a/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp +++ b/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp @@ -23,10 +23,14 @@ static ParamsBasePtr createParamsBRUTEFORCE_L1Matcher(const std::string & _filen Node d_yaml = yaml_params["matcher"]; if(d_yaml["type"].as<string>() == "BRUTEFORCE_L1") { - params_ptr->match_type = d_yaml["match type"].as<int>(); - params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); - params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); - params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["match type"]) + params_ptr->match_type = d_yaml["match type"].as<int>(); + if (d_yaml["min normalized score"]) + params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["roi"]["width"]) + params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); + if (d_yaml["roi"]["height"]) + params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; diff --git a/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp b/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp index d17c048..1c6f8dd 100644 --- a/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp +++ b/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp @@ -23,10 +23,14 @@ static ParamsBasePtr createParamsFLANNBASEDMatcher(const std::string & _filename Node d_yaml = yaml_params["matcher"]; if(d_yaml["type"].as<string>() == "FLANNBASED") { - params_ptr->match_type = d_yaml["match type"].as<int>(); - params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); - params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); - params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["match type"]) + params_ptr->match_type = d_yaml["match type"].as<int>(); + if (d_yaml["min normalized score"]) + params_ptr->min_norm_score = d_yaml["min normalized score"].as<double>(); + if (d_yaml["roi"]["width"]) + params_ptr->roi_width = d_yaml["roi"]["width"].as<unsigned int>(); + if (d_yaml["roi"]["height"]) + params_ptr->roi_height = d_yaml["roi"]["height"].as<unsigned int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; -- GitLab