Sophie

Sophie

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

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::CFeatureTracker_PatchMatch 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_feature_tracker___patch_match.html">CFeatureTracker_PatchMatch</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<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>  </div>
  <div class="headertitle">
<div class="title">mrpt::vision::CFeatureTracker_PatchMatch 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::CFeatureTracker_PatchMatch" --><!-- doxytag: inherits="mrpt::vision::CGenericFeatureTracker" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Track a set of features from old_img -&gt; new_img by patch matching over a fixed window centered at each feature's previous location. </p>
<p>See <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html" title="A virtual interface for all feature trackers, implementing the part of feature tracking that is commo...">CGenericFeatureTracker</a> for a more detailed explanation on how to use this class.</p>
<p>List of additional parameters in "extra_params" (apart from those in <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html" title="A virtual interface for all feature trackers, implementing the part of feature tracking that is commo...">CGenericFeatureTracker</a>) accepted by this class:</p>
<ul>
<li>"window_width" (Default=15)</li>
<li>"window_height" (Default=15) </li>
</ul>
</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::CFeatureTracker_PatchMatch:</div>
<div class="dyncontent">
<div class="center"><img src="structmrpt_1_1vision_1_1_c_feature_tracker___patch_match__inherit__graph.png" border="0" usemap="#mrpt_1_1vision_1_1_c_feature_tracker___patch_match_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1vision_1_1_c_feature_tracker___patch_match_inherit__map" id="mrpt_1_1vision_1_1_c_feature_tracker___patch_match_inherit__map">
<area shape="rect" id="node2" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html" title="A virtual interface for all feature trackers, implementing the part of feature tracking that is commo..." alt="" coords="21,5,261,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="structmrpt_1_1vision_1_1_c_feature_tracker___patch_match-members.html">List of all members.</a></p>
<table class="memberdecls">
<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_feature_tracker___patch_match.html#a385d2bcc98bb44c93c47f1b7e92fa0b2">CFeatureTracker_PatchMatch</a> (const <a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a> &amp;extraParams=<a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ctor.  <a href="#a385d2bcc98bb44c93c47f1b7e92fa0b2"></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_feature_tracker___patch_match.html#a94d27ab1426a26371f81fdf25cc4fc0c">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">vision::CFeatureList</a> &amp;inout_featureList)</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="#a94d27ab1426a26371f81fdf25cc4fc0c"></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#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">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>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a385d2bcc98bb44c93c47f1b7e92fa0b2"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::CFeatureTracker_PatchMatch" ref="a385d2bcc98bb44c93c47f1b7e92fa0b2" args="(const mrpt::utils::TParametersDouble &amp;extraParams=mrpt::utils::TParametersDouble())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CFeatureTracker_PatchMatch::CFeatureTracker_PatchMatch </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>extraParams</em> = <code><a class="el" href="namespacemrpt_1_1utils.html#a694777f2a3544999baea34e43a42eceb">mrpt::utils::TParametersDouble</a>()</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ctor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa9453970afc0eda64c1be01ccf7f4566"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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, inherited]</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="a7a4aedef8113a7096b405f93408f39e5"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::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><code> [inherited]</code></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::CFeatureTracker_PatchMatch::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><code> [inherited]</code></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::CFeatureTracker_PatchMatch::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, inherited]</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="a94d27ab1426a26371f81fdf25cc4fc0c"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::trackFeatures_impl" ref="a94d27ab1426a26371f81fdf25cc4fc0c" args="(const CImage &amp;old_img, const CImage &amp;new_img, vision::CFeatureList &amp;inout_featureList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::vision::CFeatureTracker_PatchMatch::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">vision::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, 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>Implements <a class="el" href="structmrpt_1_1vision_1_1_c_generic_feature_tracker.html#a56521d3ec55f008bb081adc62019a9e1">mrpt::vision::CGenericFeatureTracker</a>.</p>

</div>
</div>
<a class="anchor" id="a909e30defb4b5b9c15aded317346ec5c"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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><code> [inherited]</code></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::CFeatureTracker_PatchMatch::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><code> [inherited]</code></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="aa80dc7e788fa6aee664d04fa49bdd4e5"></a><!-- doxytag: member="mrpt::vision::CFeatureTracker_PatchMatch::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, inherited]</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::CFeatureTracker_PatchMatch::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, inherited]</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>
</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>