Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 15137

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::vision::CGenericFeatureTracker Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1vision.html">vision</a>      </li>
      <li class="navelem"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html">CGenericFeatureTracker</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::vision::CGenericFeatureTracker Struct Reference<div class="ingroups"><a class="el" href="group__vision__tracking.html">Feature detection and tracking</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::vision::CGenericFeatureTracker" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A virtual interface for all feature trackers, implementing the part of feature tracking that is common to any specific tracker implementation. </p>
<p>This class provides a quite robust tracking of features, avoiding as many outliers as possible but not all of them: more robust tracking would require application-specific information and could be done in a number of very different approaches, so this class will not try to do any kind of RANSAC or any other advanced outlier rejection; instead, it should be done by the users or the classes that employ this class.</p>
<p>The basic usage of this class is as follows: </p>
<div class="fragment"><pre class="fragment">       CFeatureTracker_KL    tracker;  <span class="comment">// Note: CFeatureTracker_KL is the most robust implementation for now.</span>
       tracker.extra_params[<span class="stringliteral">&quot;add_new_features&quot;</span>] = 1;  <span class="comment">// Enable detection of new features, not only tracking</span>
       tracker.extra_params[...] = ...
       <span class="comment">// ....</span>
       CFeatureList     theFeats;  <span class="comment">// The list of features</span>
       mrpt::utils::CImage  previous_img, current_img;

       <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
           current_img = ... <span class="comment">// Grab new image.</span>
           <span class="keywordflow">if</span> ( previous_img_is_ok )
               tracker.trackFeatures(previous_img, current_img, theFeats);
           previous_img = current_img;
       }
</pre></div><p>Below follows the list of optional parameters for "extra_params" which can be set and will be understood by this base class for any specific tracker implementation. Note that all parameters are double's, but boolean flags are emulated by the values 0.0 (false) and 1.0 (true).</p>
<p>List of parameters: </p>
<table  border="1">
<tr>
<td align="center"><b>Parameter name</b>  </td><td align="center"><b>Default value</b>  </td><td align="center"><b>Comments</b>   </td></tr>
<tr>
<td align="center">add_new_features  </td><td align="center">0  </td><td>If set to "1", the class will not only track existing features, but will also perform (after doing the actual tracking) an efficient search for new features with the FAST detector, and will add them to the passed "CFeatureList" if they fulfill a set of restrictions, as stablished by the other parameters (see <em>add_new_feat_min_separation</em>,<em>add_new_feat_max_features</em>,<em>minimum_KLT_response_to_add</em>).   </td></tr>
<tr>
<td align="center">add_new_feat_min_separation  </td><td align="center">15  </td><td>If <em>add_new_features</em>==1, this is the minimum separation (in pixels) to any other (old, or new) feature for it being considered a candidate to be added.   </td></tr>
<tr>
<td align="center">desired_num_features_adapt  </td><td align="center">(img_width*img_height)/512  </td><td>If <em>add_new_features</em>==1, the threshold of the FAST(ER) feature detector is dynamically adapted such as the number of raw FAST keypoints is around this number. This number should be much higher than the real desired numbre of features, since this one includes many features concentrated in space which are later discarded for the minimum distance.   </td></tr>
<tr>
<td align="center">desired_num_features  </td><td align="center">100  </td><td>If <em>add_new_features</em>==1, the target number of the patch associated to each feature will be updated with every N'th frame.   </td></tr>
<tr>
<td align="center">add_new_feat_patch_size  </td><td align="center">11  </td><td>If <em>add_new_features</em>==1, for each new added feature, this is the size of the patch to be extracted around the keypoint (set to 0 if patches are not required at all).   </td></tr>
<tr>
<td align="center">minimum_KLT_response_to_add  </td><td align="center">10  </td><td>If <em>add_new_features</em>==1, this sets the minimum KLT response of candidate FAST features to be added in each frame, if they also fulfil the other restrictions (e.g. min.distance).   </td></tr>
<tr>
<td align="center">check_KLT_response_every  </td><td align="center">0  </td><td>If &gt;0, it will compute the KLT response at each feature point every <em>N</em> frames and those below <em>minimum_KLT_response</em> will be marked as "lost" in their "track_status" field.   </td></tr>
<tr>
<td align="center">minimum_KLT_response  </td><td align="center">5  </td><td>See explanation of <em>check_KLT_response_every</em>.   </td></tr>
<tr>
<td align="center">KLT_response_half_win  </td><td align="center">4  </td><td>When computing the KLT response of features (see <em>minimum_KLT_response</em> and <em>minimum_KLT_response_to_add</em>), the window centered at the point for its estimation will be of size (2*W+1)x(2*W+1), with <em>W</em> being this parameter value.   </td></tr>
<tr>
<td align="center">update_patches_every  </td><td align="center">0  </td><td>If !=0, the patch associated to each feature will be updated with every N'th frame.   </td></tr>
<tr>
<td align="center">remove_lost_features  </td><td align="center">0  </td><td>If !=0, out-of-bound features or those lost while tracking, will be automatically removed from the list of features. Otherwise, the user will have to manually remove them by checking the track_status field.   </td></tr>
</table>
<p>This class also offers a time profiler, disabled by default (see getProfiler and enableTimeLogger).</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___k_l.html" title="Track a set of features from old_img -&gt; new_img using sparse optimal flow (classic KL method)...">CFeatureTracker_KL</a>, the example application "track-video-features". </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="tracking_8h_source.html">mrpt/vision/tracking.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::vision::CGenericFeatureTracker:</div>
<div class="dyncontent">
<div class="center"><img src="structmrpt_1_1vision_1_1_c_generic_feature_tracker__inherit__graph.png" border="0" usemap="#mrpt_1_1vision_1_1_c_generic_feature_tracker_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1vision_1_1_c_generic_feature_tracker_inherit__map" id="mrpt_1_1vision_1_1_c_generic_feature_tracker_inherit__map">
<area shape="rect" id="node3" href="structmrpt_1_1vision_1_1_c_feature_tracker___f_a_s_t.html" title="Track a set of features from old_img &#45;&gt; new_img by patch correlation over the closest FAST features..." alt="" coords="315,5,552,32"/><area shape="rect" id="node5" href="structmrpt_1_1vision_1_1_c_feature_tracker___k_l.html" title="Track a set of features from old_img &#45;&gt; new_img using sparse optimal flow (classic KL method)..." alt="" coords="324,56,543,83"/><area shape="rect" id="node7" href="structmrpt_1_1vision_1_1_c_feature_tracker___patch_match.html" title="Track a set of features from old_img &#45;&gt; new_img by patch matching over a fixed window centered at each..." alt="" coords="297,107,570,133"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="structmrpt_1_1vision_1_1_c_generic_feature_tracker-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker_1_1_t_extra_output_info.html">TExtraOutputInfo</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#aa6eb709d0f7a40c739398f0234822bc8">CGenericFeatureTracker</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default ctor.  <a href="#aa6eb709d0f7a40c739398f0234822bc8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#af030d71d91493fcf5289ab2fc4ea5cfb">CGenericFeatureTracker</a> (<a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a> extraParams)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ctor with extra parameters.  <a href="#af030d71d91493fcf5289ab2fc4ea5cfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#ac0cfa7031fbb8a1f7e59f5560d891a31">~CGenericFeatureTracker</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dtor.  <a href="#ac0cfa7031fbb8a1f7e59f5560d891a31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5">trackFeatures</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, <a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;inout_featureList)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform feature tracking from "old_img" to "new_img", with a (possibly empty) list of previously tracked features "inout_featureList".  <a href="#a7a4aedef8113a7096b405f93408f39e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#ad1e5d08962342da83ce8f3e248585c64">trackFeatures</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;inout_featureList)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a909e30defb4b5b9c15aded317346ec5c">trackFeaturesNewList</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, const <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">vision::CFeatureList</a> &amp;in_featureList, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">vision::CFeatureList</a> &amp;out_featureList)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper around the basic <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a> method, but keeping the original list of features unmodified and returns the tracked ones in a new list.  <a href="#a909e30defb4b5b9c15aded317346ec5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a9c210bd84d54c5ce72fe1e93933b49bf">getProfiler</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a read-only reference to the internal time logger.  <a href="#a9c210bd84d54c5ce72fe1e93933b49bf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#af5538fb8d752b810c7bac461a7043f3d">getProfiler</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the internal time logger.  <a href="#af5538fb8d752b810c7bac461a7043f3d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#aa9453970afc0eda64c1be01ccf7f4566">enableTimeLogger</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a read-only reference to the internal time logger.  <a href="#aa9453970afc0eda64c1be01ccf7f4566"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#ad1d65969e0219c7e132c1cb9f27d2484">getDetectorAdaptiveThreshold</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current adaptive threshold used by the FAST(ER) detector to find out new features in empty areas.  <a href="#ad1d65969e0219c7e132c1cb9f27d2484"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2b81ed2b0cb9fb13cbd9d75296bf73cf">extra_params</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional list of extra parameters to the algorithm.  <a href="#a2b81ed2b0cb9fb13cbd9d75296bf73cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker_1_1_t_extra_output_info.html">TExtraOutputInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a8d097a7479a5363be5a282fa49d7366a">last_execution_extra_info</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updated with each call to <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a>  <a href="#a8d097a7479a5363be5a282fa49d7366a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2c09df67032622b49a9a694f294fb5d7">trackFeatures_impl</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, <a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;inout_featureList)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The tracking method implementation, to be implemented in children classes.  <a href="#a2c09df67032622b49a9a694f294fb5d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a56521d3ec55f008bb081adc62019a9e1">trackFeatures_impl</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;inout_featureList)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This version falls back to the version with TSimpleFeatureList if the derived class does not implement it.  <a href="#a56521d3ec55f008bb081adc62019a9e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#aa4ef8adf2c873e88f78bb9b795b18bb5">updateAdaptiveNewFeatsThreshold</a> (const size_t nNewlyDetectedFeats, const size_t desired_num_features)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapts the threshold <em>m_detector_adaptive_thres</em> according to the real and desired number of features just detected.  <a href="#aa4ef8adf2c873e88f78bb9b795b18bb5"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#af9203d9f912c98716ba879041f58ff6e">m_timlog</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">the internal time logger, disabled by default.  <a href="#af9203d9f912c98716ba879041f58ff6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">mrpt::vision::TSimpleFeatureList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#aa80dc7e788fa6aee664d04fa49bdd4e5">m_newly_detected_feats</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This field is clared by <em><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a></em> before calling <em><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2c09df67032622b49a9a694f294fb5d7" title="The tracking method implementation, to be implemented in children classes.">trackFeatures_impl()</a></em>, and can be filled out with newly defected FAST(ER) features in the latter.  <a href="#aa80dc7e788fa6aee664d04fa49bdd4e5"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename FEATLIST &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2276a7dfc0fed1d8469a90704229ac2d">internal_trackFeatures</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;old_img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;new_img, FEATLIST &amp;inout_featureList)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#acb2586a70ebfbfb1b666f9d02fadbb90">m_update_patches_counter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">for use when "update_patches_every"&gt;=1  <a href="#acb2586a70ebfbfb1b666f9d02fadbb90"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2eb5188b9edfae41afed07cd0156d397">m_check_KLT_counter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For use when "check_KLT_response_every"&gt;=1.  <a href="#a2eb5188b9edfae41afed07cd0156d397"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2db465f40cfd3dcd97a18498495242c5">m_detector_adaptive_thres</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For use in "add_new_features" == true.  <a href="#a2db465f40cfd3dcd97a18498495242c5"></a><br/></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa6eb709d0f7a40c739398f0234822bc8"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::CGenericFeatureTracker" ref="aa6eb709d0f7a40c739398f0234822bc8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CGenericFeatureTracker::CGenericFeatureTracker </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default ctor. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00136">136</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="af030d71d91493fcf5289ab2fc4ea5cfb"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::CGenericFeatureTracker" ref="af030d71d91493fcf5289ab2fc4ea5cfb" args="(mrpt::utils::TParametersDouble extraParams)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CGenericFeatureTracker::CGenericFeatureTracker </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a>&#160;</td>
          <td class="paramname"><em>extraParams</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ctor with extra parameters. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00139">139</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac0cfa7031fbb8a1f7e59f5560d891a31"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::~CGenericFeatureTracker" ref="ac0cfa7031fbb8a1f7e59f5560d891a31" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::vision::CGenericFeatureTracker::~CGenericFeatureTracker </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dtor. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00142">142</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa9453970afc0eda64c1be01ccf7f4566"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::enableTimeLogger" ref="aa9453970afc0eda64c1be01ccf7f4566" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::enableTimeLogger </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a read-only reference to the internal time logger. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00185">185</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad1d65969e0219c7e132c1cb9f27d2484"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::getDetectorAdaptiveThreshold" ref="ad1d65969e0219c7e132c1cb9f27d2484" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::vision::CGenericFeatureTracker::getDetectorAdaptiveThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current adaptive threshold used by the FAST(ER) detector to find out new features in empty areas. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00188">188</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9c210bd84d54c5ce72fe1e93933b49bf"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::getProfiler" ref="a9c210bd84d54c5ce72fe1e93933b49bf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a>&amp; mrpt::vision::CGenericFeatureTracker::getProfiler </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a read-only reference to the internal time logger. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00180">180</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="af5538fb8d752b810c7bac461a7043f3d"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::getProfiler" ref="af5538fb8d752b810c7bac461a7043f3d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a>&amp; mrpt::vision::CGenericFeatureTracker::getProfiler </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a reference to the internal time logger. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00182">182</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2276a7dfc0fed1d8469a90704229ac2d"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::internal_trackFeatures" ref="a2276a7dfc0fed1d8469a90704229ac2d" args="(const CImage &amp;old_img, const CImage &amp;new_img, FEATLIST &amp;inout_featureList)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename FEATLIST &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::internal_trackFeatures </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FEATLIST &amp;&#160;</td>
          <td class="paramname"><em>inout_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7a4aedef8113a7096b405f93408f39e5"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::trackFeatures" ref="a7a4aedef8113a7096b405f93408f39e5" args="(const CImage &amp;old_img, const CImage &amp;new_img, TSimpleFeatureList &amp;inout_featureList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::trackFeatures </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform feature tracking from "old_img" to "new_img", with a (possibly empty) list of previously tracked features "inout_featureList". </p>
<p>This is a list of parameters (in "extraParams") accepted by ALL implementations of feature tracker (see each derived class for more specific parameters).</p>
<ul>
<li>"add_new_features" (Default=0). If set to "1", new features will be also added to the existing ones in areas of the image poor of features. This method does:</li>
</ul>
<p>Convert old and new images to grayscale, if they're in color.</p>
<ul>
<li>Call the pure virtual "trackFeatures_impl" method.</li>
<li>Implement the optional detection of new features if "add_new_features"!=0. </li>
</ul>

</div>
</div>
<a class="anchor" id="ad1e5d08962342da83ce8f3e248585c64"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::trackFeatures" ref="ad1e5d08962342da83ce8f3e248585c64" args="(const CImage &amp;old_img, const CImage &amp;new_img, CFeatureList &amp;inout_featureList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::trackFeatures </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a2c09df67032622b49a9a694f294fb5d7"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::trackFeatures_impl" ref="a2c09df67032622b49a9a694f294fb5d7" args="(const CImage &amp;old_img, const CImage &amp;new_img, TSimpleFeatureList &amp;inout_featureList)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::vision::CGenericFeatureTracker::trackFeatures_impl </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The tracking method implementation, to be implemented in children classes. </p>

<p>Implemented in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___f_a_s_t.html#a297aa204a94291cb740fb0d841ad8db4">mrpt::vision::CFeatureTracker_FAST</a>, and <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___k_l.html#ae9adf18523beb42d78ad599fe9df8945">mrpt::vision::CFeatureTracker_KL</a>.</p>

</div>
</div>
<a class="anchor" id="a56521d3ec55f008bb081adc62019a9e1"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::trackFeatures_impl" ref="a56521d3ec55f008bb081adc62019a9e1" args="(const CImage &amp;old_img, const CImage &amp;new_img, CFeatureList &amp;inout_featureList)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::vision::CGenericFeatureTracker::trackFeatures_impl </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This version falls back to the version with TSimpleFeatureList if the derived class does not implement it. </p>

<p>Implemented in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___patch_match.html#a94d27ab1426a26371f81fdf25cc4fc0c">mrpt::vision::CFeatureTracker_PatchMatch</a>, <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___f_a_s_t.html#a243a87dedc0f060f14e275ff5112773c">mrpt::vision::CFeatureTracker_FAST</a>, and <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___k_l.html#add913f70bb67ad062cac7033723bb325">mrpt::vision::CFeatureTracker_KL</a>.</p>

</div>
</div>
<a class="anchor" id="a909e30defb4b5b9c15aded317346ec5c"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::trackFeaturesNewList" ref="a909e30defb4b5b9c15aded317346ec5c" args="(const CImage &amp;old_img, const CImage &amp;new_img, const vision::CFeatureList &amp;in_featureList, vision::CFeatureList &amp;out_featureList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::trackFeaturesNewList </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>old_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>new_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">vision::CFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>in_featureList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">vision::CFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>out_featureList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A wrapper around the basic <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a> method, but keeping the original list of features unmodified and returns the tracked ones in a new list. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00165">165</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

<p>References <a class="el" href="_c_feature_8h_source.html#l00285">mrpt::vision::CFeatureList::begin()</a>, and <a class="el" href="_c_feature_8h_source.html#l00286">mrpt::vision::CFeatureList::end()</a>.</p>

</div>
</div>
<a class="anchor" id="aa4ef8adf2c873e88f78bb9b795b18bb5"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::updateAdaptiveNewFeatsThreshold" ref="aa4ef8adf2c873e88f78bb9b795b18bb5" args="(const size_t nNewlyDetectedFeats, const size_t desired_num_features)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CGenericFeatureTracker::updateAdaptiveNewFeatsThreshold </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>nNewlyDetectedFeats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>desired_num_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adapts the threshold <em>m_detector_adaptive_thres</em> according to the real and desired number of features just detected. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a2b81ed2b0cb9fb13cbd9d75296bf73cf"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::extra_params" ref="a2b81ed2b0cb9fb13cbd9d75296bf73cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a> <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2b81ed2b0cb9fb13cbd9d75296bf73cf">mrpt::vision::CGenericFeatureTracker::extra_params</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Optional list of extra parameters to the algorithm. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00133">133</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8d097a7479a5363be5a282fa49d7366a"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::last_execution_extra_info" ref="a8d097a7479a5363be5a282fa49d7366a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker_1_1_t_extra_output_info.html">TExtraOutputInfo</a> <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a8d097a7479a5363be5a282fa49d7366a">mrpt::vision::CGenericFeatureTracker::last_execution_extra_info</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Updated with each call to <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a> </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00196">196</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2eb5188b9edfae41afed07cd0156d397"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::m_check_KLT_counter" ref="a2eb5188b9edfae41afed07cd0156d397" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2eb5188b9edfae41afed07cd0156d397">mrpt::vision::CGenericFeatureTracker::m_check_KLT_counter</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For use when "check_KLT_response_every"&gt;=1. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00226">226</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2db465f40cfd3dcd97a18498495242c5"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::m_detector_adaptive_thres" ref="a2db465f40cfd3dcd97a18498495242c5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2db465f40cfd3dcd97a18498495242c5">mrpt::vision::CGenericFeatureTracker::m_detector_adaptive_thres</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For use in "add_new_features" == true. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00227">227</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa80dc7e788fa6aee664d04fa49bdd4e5"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::m_newly_detected_feats" ref="aa80dc7e788fa6aee664d04fa49bdd4e5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">mrpt::vision::TSimpleFeatureList</a> <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#aa80dc7e788fa6aee664d04fa49bdd4e5">mrpt::vision::CGenericFeatureTracker::m_newly_detected_feats</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This field is clared by <em><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a7a4aedef8113a7096b405f93408f39e5" title="Perform feature tracking from &quot;old_img&quot; to &quot;new_img&quot;, with a (possibly empty) list of previously trac...">trackFeatures()</a></em> before calling <em><a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a2c09df67032622b49a9a694f294fb5d7" title="The tracking method implementation, to be implemented in children classes.">trackFeatures_impl()</a></em>, and can be filled out with newly defected FAST(ER) features in the latter. </p>
<p>If it's not the case, feats will be computed anyway if the user enabled the "add_new_features" option. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00217">217</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="af9203d9f912c98716ba879041f58ff6e"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::m_timlog" ref="af9203d9f912c98716ba879041f58ff6e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_time_logger.html">mrpt::utils::CTimeLogger</a> <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#af9203d9f912c98716ba879041f58ff6e">mrpt::vision::CGenericFeatureTracker::m_timlog</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>the internal time logger, disabled by default. </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00211">211</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb2586a70ebfbfb1b666f9d02fadbb90"></a><!-- doxytag: member="mrpt::vision::CGenericFeatureTracker::m_update_patches_counter" ref="acb2586a70ebfbfb1b666f9d02fadbb90" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#acb2586a70ebfbfb1b666f9d02fadbb90">mrpt::vision::CGenericFeatureTracker::m_update_patches_counter</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>for use when "update_patches_every"&gt;=1 </p>

<p>Definition at line <a class="el" href="tracking_8h_source.html#l00225">225</a> of file <a class="el" href="tracking_8h_source.html">tracking.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>