diff --git a/src/algorithms/activesearch/alg_activesearch.cpp b/src/algorithms/activesearch/alg_activesearch.cpp index 80ca5a6bcc4bf4fa2b2ce25d1c31df121e6f070b..243d15e9449458c628dfb11fa11c6b1ae34d7c77 100644 --- a/src/algorithms/activesearch/alg_activesearch.cpp +++ b/src/algorithms/activesearch/alg_activesearch.cpp @@ -242,7 +242,7 @@ void AlgorithmACTIVESEARCH::trackFrame(const FramePtr& _frame_old, FramePtr& _tr hitCell(target_feature[ii]); // Set ROI - cv::Rect roi = setRoi(target_feature[ii].pt.x,target_feature[ii].pt.y, _mat_ptr->getParams()->roi_width, _mat_ptr->getParams()->roi_height); + cv::Rect roi = setRoi(target_feature[ii].pt.x,target_feature[ii].pt.y, cell_size_(0), cell_size_(1)); // // draw ROI // if (params_ptr_->draw_results) diff --git a/src/algorithms/trackfeatures/alg_trackfeatures.cpp b/src/algorithms/trackfeatures/alg_trackfeatures.cpp index aefc578448f5d2c0d6d8e1260281567f80a05d45..add44d85cc6250eaa71224daabb283821a9c5234 100644 --- a/src/algorithms/trackfeatures/alg_trackfeatures.cpp +++ b/src/algorithms/trackfeatures/alg_trackfeatures.cpp @@ -96,7 +96,7 @@ void AlgorithmTRACKFEATURES::trackFrame(const FramePtr& _frame_old, FramePtr& _t for(int ii = 1; ii < target_kps.size(); ++ii) { // Set a candidate ROI around the target feature - cv::Rect roi = setRoi(target_kps[ii].pt.x, target_kps[ii].pt.y, _mat_ptr->getParams()->roi_width, _mat_ptr->getParams()->roi_width); + cv::Rect roi = setRoi(target_kps[ii].pt.x, target_kps[ii].pt.y, params_ptr_->target_roi_height, params_ptr_->target_roi_width); // // draw ROI // if (params_ptr_->draw_results) diff --git a/src/algorithms/trackfeatures/alg_trackfeatures.h b/src/algorithms/trackfeatures/alg_trackfeatures.h index 334bbe57c05e183831a0b9b84bb2cc5d05ea36eb..477e3b737e884ecac9ce64e3f24f6672c9844389 100644 --- a/src/algorithms/trackfeatures/alg_trackfeatures.h +++ b/src/algorithms/trackfeatures/alg_trackfeatures.h @@ -21,7 +21,9 @@ VU_STRUCT_PTR_TYPEDEFS(AlgorithmParamsTRACKFEATURES); */ struct AlgorithmParamsTRACKFEATURES: public AlgorithmParamsBase { - int min_feat_track; // Minimum features to track. With less than this number a new detection is called. + int min_feat_track; // Minimum features to track. With less than this number a new detection is called. + int target_roi_width; // ROI width to search for a target match + int target_roi_height; // ROI width to search for a target match ~AlgorithmParamsTRACKFEATURES(){} }; diff --git a/src/algorithms/trackfeatures/alg_trackfeatures_load_yaml.cpp b/src/algorithms/trackfeatures/alg_trackfeatures_load_yaml.cpp index ab2b832431881081bf521cbf653e99406fced8ac..dc6315e6d4f7d4a9970464af0a0bc429bff83e3a 100644 --- a/src/algorithms/trackfeatures/alg_trackfeatures_load_yaml.cpp +++ b/src/algorithms/trackfeatures/alg_trackfeatures_load_yaml.cpp @@ -25,6 +25,9 @@ static ParamsBasePtr createParamsTRACKFEATURESAlgorithm(const std::string & _fil { params_ptr->draw_results = d_yaml["draw results"].as<bool>(); params_ptr->min_feat_track = d_yaml["min features to track"].as<int>(); + Node troi_yaml = yaml_params["target roi"]; + params_ptr->target_roi_width = troi_yaml["width"].as<int>(); + params_ptr->target_roi_width = troi_yaml["height"].as<int>(); }else { std::cerr << "Bad configuration file. Wrong type " << d_yaml["type"].as<string>() << std::endl; diff --git a/src/examples/yaml/ACTIVESEARCH.yaml b/src/examples/yaml/ACTIVESEARCH.yaml index 4ff33b353b3921c223665c78f6d9bb8029377c78..1f6a69213de6647d3e2849de3c92279d6fa6e83e 100644 --- a/src/examples/yaml/ACTIVESEARCH.yaml +++ b/src/examples/yaml/ACTIVESEARCH.yaml @@ -26,9 +26,6 @@ descriptor: matcher: type: "FLANNBASED" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 min normalized score: 0.85 algorithm: diff --git a/src/examples/yaml/BRUTEFORCE.yaml b/src/examples/yaml/BRUTEFORCE.yaml index e438cc9a50b07f379efba51a181a5f57fe0d4985..5edfa46f734e157bbc8b785f5624eb8a23a299de 100644 --- a/src/examples/yaml/BRUTEFORCE.yaml +++ b/src/examples/yaml/BRUTEFORCE.yaml @@ -3,7 +3,3 @@ sensor: matcher: type: "BRUTEFORCE" - match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/examples/yaml/BRUTEFORCE_HAMMING.yaml b/src/examples/yaml/BRUTEFORCE_HAMMING.yaml index c4531d268099d294aaa10e95b71dd9601b65d55d..42e63bcd38a163fb826ce967a23ebe00187f52ca 100644 --- a/src/examples/yaml/BRUTEFORCE_HAMMING.yaml +++ b/src/examples/yaml/BRUTEFORCE_HAMMING.yaml @@ -4,6 +4,3 @@ sensor: matcher: type: "BRUTEFORCE_HAMMING" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/examples/yaml/BRUTEFORCE_HAMMING_2.yaml b/src/examples/yaml/BRUTEFORCE_HAMMING_2.yaml index 4f7bbef4ed76e168140f1f168eba06cc9a65ec1b..fb95ed69bd93a53a1bee4d66366de5e3a7690960 100644 --- a/src/examples/yaml/BRUTEFORCE_HAMMING_2.yaml +++ b/src/examples/yaml/BRUTEFORCE_HAMMING_2.yaml @@ -4,6 +4,3 @@ sensor: matcher: type: "BRUTEFORCE_HAMMING_2" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/examples/yaml/BRUTEFORCE_L1.yaml b/src/examples/yaml/BRUTEFORCE_L1.yaml index ae97d2d59527202fb22a8543e6a4bb7b090a53dc..73ebe115e60b6b70962412e295e48c96dbd2c7fa 100644 --- a/src/examples/yaml/BRUTEFORCE_L1.yaml +++ b/src/examples/yaml/BRUTEFORCE_L1.yaml @@ -4,6 +4,3 @@ sensor: matcher: type: "BRUTEFORCE_L1" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/examples/yaml/TRACKFEATURES.yaml b/src/examples/yaml/TRACKFEATURES.yaml index 6d2802ea61658c46def04daf840601093d5165ff..378bf044d875d7d868cd98f6e8159865d704935b 100644 --- a/src/examples/yaml/TRACKFEATURES.yaml +++ b/src/examples/yaml/TRACKFEATURES.yaml @@ -23,9 +23,6 @@ descriptor: matcher: type: "FLANNBASED" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 min normalized score: 0.85 algorithm: diff --git a/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp index 3b4dfc040e920cef97670cb5ea6d5f991cf3717b..3dd4bd17debdcb41314402835a078cd801170dfa 100644 --- a/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp +++ b/src/matchers/bruteforce/matcher_bruteforce_load_yaml.cpp @@ -27,10 +27,6 @@ static ParamsBasePtr createParamsBRUTEFORCEMatcher(const std::string & _filename 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 002b3bde11080991cd812a556ababffeeb69ff37..09184f68979f865ba9b1c23579f99b8d761b0d08 100644 --- a/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp +++ b/src/matchers/bruteforce_hamming/matcher_bruteforce_hamming_load_yaml.cpp @@ -27,10 +27,6 @@ static ParamsBasePtr createParamsBRUTEFORCE_HAMMINGMatcher(const std::string & _ 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 0d8c913c6d5ecfe18e6768c0e0cea0bf0dedba25..72fd5e92a5ff663ef194cd3510cf6787635d3177 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 @@ -27,10 +27,6 @@ static ParamsBasePtr createParamsBRUTEFORCE_HAMMING_2Matcher(const std::string & 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 bd10edb030611e926a957d632dfe2a0718bf8be4..6786d77a4fe3522abc983341b3794cb2d4e2c107 100644 --- a/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp +++ b/src/matchers/bruteforce_l1/matcher_bruteforce_l1_load_yaml.cpp @@ -27,10 +27,6 @@ static ParamsBasePtr createParamsBRUTEFORCE_L1Matcher(const std::string & _filen 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 1c6f8dd3d038c9c5eca01d3d24610cfdd80deccf..1b06f3d291c147697a33c21c764187b8153a911a 100644 --- a/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp +++ b/src/matchers/flannbased/matcher_flannbased_load_yaml.cpp @@ -27,10 +27,6 @@ static ParamsBasePtr createParamsFLANNBASEDMatcher(const std::string & _filename 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/matcher_base.h b/src/matchers/matcher_base.h index ca30b6011dcc5811b8ec43b2f2b2d01f32f20565..39c73509ac6f620b963ef393c60a9b37b4c80fdb 100644 --- a/src/matchers/matcher_base.h +++ b/src/matchers/matcher_base.h @@ -37,8 +37,6 @@ struct MatcherParamsBase: public ParamsBase { std::string type; int match_type = MATCH; // Type of Match. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - int roi_width = 20; // ROI width around a keypoint to search for a match. - int roi_height = 20; // ROI height around a keypoint to search for a match. double min_norm_score; //< [-1..0]: awful match; 1: perfect match; out of [-1,1]: error MatcherParamsBase(const std::string& _type): type(_type){} virtual ~MatcherParamsBase(){} diff --git a/src/test/data/ACTIVESEARCH.yaml b/src/test/data/ACTIVESEARCH.yaml index 8a4ba933ea92a61221df997f183778a27103799d..04333b0f33bd0b83e685e50fc6a0d11ad6c94bb0 100644 --- a/src/test/data/ACTIVESEARCH.yaml +++ b/src/test/data/ACTIVESEARCH.yaml @@ -26,9 +26,6 @@ descriptor: matcher: type: "FLANNBASED" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 min normalized score: 0.85 algorithm: diff --git a/src/test/data/BRUTEFORCE.yaml b/src/test/data/BRUTEFORCE.yaml index 45e9e5f21cfac61fca34d9e4537a6b3d4aaa7120..3af86a3f82b84c3b788ee02ec120e1d535ec38a8 100644 --- a/src/test/data/BRUTEFORCE.yaml +++ b/src/test/data/BRUTEFORCE.yaml @@ -3,6 +3,3 @@ sensor: matcher: type: "BRUTEFORCE" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/test/data/BRUTEFORCE_HAMMING.yaml b/src/test/data/BRUTEFORCE_HAMMING.yaml index f3f90f60a7bf068c39481544566a18d13291e55c..081dd31ba753865c75286014b69027b5bf5a8755 100644 --- a/src/test/data/BRUTEFORCE_HAMMING.yaml +++ b/src/test/data/BRUTEFORCE_HAMMING.yaml @@ -3,6 +3,3 @@ sensor: matcher: type: "BRUTEFORCE_HAMMING" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/test/data/BRUTEFORCE_HAMMING_2.yaml b/src/test/data/BRUTEFORCE_HAMMING_2.yaml index 6b18c8457f6c240140aff7248d63864999927e8f..0da3073ce04918e19cc94e8aebd35b7922ff54b5 100644 --- a/src/test/data/BRUTEFORCE_HAMMING_2.yaml +++ b/src/test/data/BRUTEFORCE_HAMMING_2.yaml @@ -3,6 +3,3 @@ sensor: matcher: type: "BRUTEFORCE_HAMMING_2" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/test/data/BRUTEFORCE_L1.yaml b/src/test/data/BRUTEFORCE_L1.yaml index 383b75b3169bd90a74af090a75dd584335597e34..128fcf4366ca896f4f79a1cdf2ea8fc4facc9841 100644 --- a/src/test/data/BRUTEFORCE_L1.yaml +++ b/src/test/data/BRUTEFORCE_L1.yaml @@ -3,6 +3,3 @@ sensor: matcher: type: "BRUTEFORCE_L1" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 \ No newline at end of file diff --git a/src/test/data/TRACKFEATURES.yaml b/src/test/data/TRACKFEATURES.yaml index 4742d0e8f447619a8b264a56aded71a740b0b592..43d5a68981d9107339ddd92b84619ae7aa4c279f 100644 --- a/src/test/data/TRACKFEATURES.yaml +++ b/src/test/data/TRACKFEATURES.yaml @@ -23,9 +23,6 @@ descriptor: matcher: type: "FLANNBASED" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 min normalized score: 0.85 algorithm: diff --git a/src/test/data/base_classes.yaml b/src/test/data/base_classes.yaml index ad1feccffa72b27f5102f61c3807bb5b7cb534b2..9f8fabd1f46edf5c63e27371a4438c93affbfec6 100644 --- a/src/test/data/base_classes.yaml +++ b/src/test/data/base_classes.yaml @@ -26,9 +26,6 @@ descriptor: matcher: type: "BRUTEFORCE" match type: 1 # Match type. MATCH = 1, KNNMATCH = 2, RADIUSMATCH = 3 - roi: - width: 20 - height: 20 min normalized score: 0.85 algorithm: