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: