Sophie

Sophie

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

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::CFeatureExtraction Class 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="classmrpt_1_1vision_1_1_c_feature_extraction.html">CFeatureExtraction</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::vision::CFeatureExtraction Class Reference<div class="ingroups"><a class="el" href="group__mrptvision__features.html">Feature detection, tracking, descriptors and matching</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::vision::CFeatureExtraction" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The central class from which images can be analyzed in search of different kinds of interest points and descriptors computed for them. </p>
<p>To extract features from an image, create an instance of <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html" title="The central class from which images can be analyzed in search of different kinds of interest points a...">CFeatureExtraction</a>, fill out its <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac40e9ebddcd82c27c090a8d8d74c7701" title="Set all the parameters of the desired method here before calling &quot;detectFeatures&quot;.">CFeatureExtraction::options</a> field, including the algorithm to use (see <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#aad4ab0c925bc880dd5672fe7d0a727bb" title="Type of the extracted features.">CFeatureExtraction::TOptions::featsType</a>), and call <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#aaa28b272b6a781352e0a50e09ca9c740" title="Extract features from the image based on the method defined in TOptions.">CFeatureExtraction::detectFeatures</a>. This will return a set of features of the class <a class="el" href="classmrpt_1_1vision_1_1_c_feature.html" title="A generic 2D feature from an image, extracted with CFeatureExtraction Each feature may have one or mo...">mrpt::vision::CFeature</a>, which include details for each interest point as well as the desired descriptors and/or patches.</p>
<p>By default, a 21x21 patch is extracted for each detected feature. If the patch is not needed, set patchSize to 0 in <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac40e9ebddcd82c27c090a8d8d74c7701" title="Set all the parameters of the desired method here before calling &quot;detectFeatures&quot;.">CFeatureExtraction::options</a></p>
<p>The implemented <b>detection</b> algorithms are (see <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#aad4ab0c925bc880dd5672fe7d0a727bb" title="Type of the extracted features.">CFeatureExtraction::TOptions::featsType</a>):</p>
<ul>
<li>KLT (Kanade-Lucas-Tomasi): A detector (no descriptor vector).</li>
<li>Harris: A detector (no descriptor vector).</li>
<li>BCD (Binary Corner Detector): A detector (no descriptor vector) (Not implemented yet).</li>
<li>SIFT: An implementation of the SIFT detector and descriptor. The implemention may be selected with CFeatureExtraction::TOptions::SIFTOptions::implementation.</li>
<li>SURF: OpenCV's implementation of SURF detector and descriptor.</li>
<li>The FAST feature detector (OpenCV's implementation)</li>
<li>The FASTER (9,10,12) detectors (Edward Rosten's libcvd implementation optimized for SSE2).</li>
</ul>
<p>Additionally, given a list of interest points onto an image, the following <b>descriptors</b> can be computed for each point by calling <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a3e40d7aee709211a01ac277a410b9542" title="Compute one (or more) descriptors for the given set of interest points onto the image, which may have been filled out manually or from detectFeatures.">CFeatureExtraction::computeDescriptors</a> :</p>
<ul>
<li>SIFT descriptor (Lowe's descriptors).</li>
<li>SURF descriptor (OpenCV's implementation - Requires OpenCV 1.1.0 from SVN or later).</li>
<li>Intensity-domain spin images (SpinImage): Creates a vector descriptor with the 2D histogram as a single row.</li>
<li>A circular patch in polar coordinates (Polar images): The matrix descriptor is a 2D polar image centered at the interest point.</li>
<li>A log-polar image patch (Log-polar images): The matrix descriptor is the 2D log-polar image centered at the interest point.</li>
</ul>
<p>Apart from the normal entry point <em><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#aaa28b272b6a781352e0a50e09ca9c740" title="Extract features from the image based on the method defined in TOptions.">detectFeatures()</a></em>, these other low-level functions are provided for convenience:</p>
<ul>
<li><dl class="note"><dt><b>Note:</b></dt><dd>The descriptor "Intensity-domain spin images" is described in "A sparse texture representation using affine-invariant regions", S Lazebnik, C Schmid, J Ponce, 2003 IEEE Computer Society Conference on Computer Vision. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_feature.html" title="A generic 2D feature from an image, extracted with CFeatureExtraction Each feature may have one or mo...">mrpt::vision::CFeature</a> </dd></dl>
</li>
</ul>
</div>
<p><code>#include &lt;<a class="el" href="_c_feature_extraction_8h_source.html">mrpt/vision/CFeatureExtraction.h</a>&gt;</code></p>

<p><a href="classmrpt_1_1vision_1_1_c_feature_extraction-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_feature_extraction_1_1_t_options.html">TOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The set of parameters for all the detectors &amp; descriptor algorithms.  <a href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084">TSIFTImplementation</a> { <br/>
&#160;&#160;<a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084ada9f89ce52ea2f8a29c274762943b752">LoweBinary</a> =  0, 
<a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084a08585180a97a342efd2cfded845932fb">CSBinary</a>, 
<a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084a2892c19d9b23a19804c7b964adf18f6b">VedaldiBinary</a>, 
<a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084aa6fedc8b9946ea67a601976fa11411b9">Hess</a>, 
<br/>
&#160;&#160;<a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084a62f7fb9cd79fdf2d336f3f5ea524349f">OpenCV</a>
<br/>
 }</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="classmrpt_1_1vision_1_1_c_feature_extraction.html#a7404da67a0eaaf6678d45452311527e1">CFeatureExtraction</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a7404da67a0eaaf6678d45452311527e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a4e0221d83cdd59eed71105b2d4d9805b">~CFeatureExtraction</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor.  <a href="#a4e0221d83cdd59eed71105b2d4d9805b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#aaa28b272b6a781352e0a50e09ca9c740">detectFeatures</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, const unsigned int init_ID=0, const unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>(), const <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> *mask=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the method defined in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html" title="The set of parameters for all the detectors &amp; descriptor algorithms.">TOptions</a>.  <a href="#aaa28b272b6a781352e0a50e09ca9c740"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a3e40d7aee709211a01ac277a410b9542">computeDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;inout_features, <a class="el" href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">TDescriptorType</a> in_descriptor_list) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute one (or more) descriptors for the given set of interest points onto the image, which may have been filled out manually or from <em>detectFeatures</em>.  <a href="#a3e40d7aee709211a01ac277a410b9542"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ad3968ab244b874dc7de03efe7b446a5e">findMoreFeatures</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, const <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;inList, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;outList, unsigned int nDesiredFeats=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract more features from the image (apart from the provided ones) based on the method defined in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html" title="The set of parameters for all the detectors &amp; descriptor algorithms.">TOptions</a>.  <a href="#ad3968ab244b874dc7de03efe7b446a5e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Static methods with low-level detector functionality</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrptvision__features.html#ga77bd7b9efd0690507492a05477d5903b">detectFeatures_SSE2_FASTER9</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;corners, const int threshold=20, bool append_to_list=false, uint8_t octave=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A SSE2-optimized implementation of FASTER-9 (requires img to be grayscale).  <a href="group__mrptvision__features.html#ga77bd7b9efd0690507492a05477d5903b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrptvision__features.html#ga248014dca65924eb5ce68e80e02465cb">detectFeatures_SSE2_FASTER10</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;corners, const int threshold=20, bool append_to_list=false, uint8_t octave=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like <em><a class="el" href="group__mrptvision__features.html#ga77bd7b9efd0690507492a05477d5903b" title="A SSE2-optimized implementation of FASTER-9 (requires img to be grayscale).">detectFeatures_SSE2_FASTER9()</a></em> for another version of the detector.  <a href="group__mrptvision__features.html#ga248014dca65924eb5ce68e80e02465cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrptvision__features.html#ga0737a4c1b6e01979d9307c1f82f79ec4">detectFeatures_SSE2_FASTER12</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638">TSimpleFeatureList</a> &amp;corners, const int threshold=20, bool append_to_list=false, uint8_t octave=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like <em><a class="el" href="group__mrptvision__features.html#ga77bd7b9efd0690507492a05477d5903b" title="A SSE2-optimized implementation of FASTER-9 (requires img to be grayscale).">detectFeatures_SSE2_FASTER9()</a></em> for another version of the detector.  <a href="group__mrptvision__features.html#ga0737a4c1b6e01979d9307c1f82f79ec4"></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="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html">TOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac40e9ebddcd82c27c090a8d8d74c7701">options</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the parameters of the desired method here before calling "detectFeatures".  <a href="#ac40e9ebddcd82c27c090a8d8d74c7701"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a8244c2a67575561fcda2fceda64a3975">internal_computeSiftDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;in_features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the SIFT descriptor of the provided features into the input image.  <a href="#a8244c2a67575561fcda2fceda64a3975"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a6a5f0ef815d7a2da1fd0ef616e10b4f6">internal_computeSurfDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;in_features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the SURF descriptor of the provided features into the input image.  <a href="#a6a5f0ef815d7a2da1fd0ef616e10b4f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a74396c8d7f11f60363d47dc0559d997d">internal_computeSpinImageDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;in_features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intensity-domain spin images descriptor of the provided features into the input image.  <a href="#a74396c8d7f11f60363d47dc0559d997d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a97a0c030012df4d7733978429bf97f20">internal_computePolarImageDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;in_features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a polar-image descriptor of the provided features into the input image.  <a href="#a97a0c030012df4d7733978429bf97f20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a9cb80003a289d72d78060469ae264498">internal_computeLogPolarImageDescriptors</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;in_features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a log-polar image descriptor of the provided features into the input image.  <a href="#a9cb80003a289d72d78060469ae264498"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a5365d3e27c3d8adfe3a94d22542b4d6d">selectGoodFeaturesKLT</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;inImg, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, void *mask_=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Select good features using the openCV implementation of the KLT method.  <a href="#a5365d3e27c3d8adfe3a94d22542b4d6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#aa155938c2d89c2b0cac3de5cc58b8bfc">extractFeaturesKLT</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the KLT method.  <a href="#aa155938c2d89c2b0cac3de5cc58b8bfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a45ab43e9f8a2fa034545193f370feb28">extractFeaturesBCD</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the BCD method.  <a href="#a45ab43e9f8a2fa034545193f370feb28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a53de22dda293794ff3aa098f9fc7c13e">extractFeaturesSIFT</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the SIFT method.  <a href="#a53de22dda293794ff3aa098f9fc7c13e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#af7246edfdeda311b0920dce669b4293a">extractFeaturesSURF</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the SURF method.  <a href="#af7246edfdeda311b0920dce669b4293a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a2b80a9f9e557ebe5597cc05ae64d49b7">extractFeaturesFAST</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>(), const <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> *mask=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract features from the image based on the FAST method.  <a href="#a2b80a9f9e557ebe5597cc05ae64d49b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac0097b47456633e713c4882826995df8">extractFeaturesFASTER_N</a> (const int N, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Edward's "FASTER &amp; Better" detector, N=9,10,12.  <a href="#ac0097b47456633e713c4882826995df8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac87ec1b81d2fa49583fc4ad9e6ef313b">my_scale_space_extrema</a> (<a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;featList, void *dog_pyr, int octvs, int intvls, double contr_thr, int curv_thr, void *storage) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes extrema in the scale space.  <a href="#ac87ec1b81d2fa49583fc4ad9e6ef313b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a0637c08e54c06a4aec53db6f6740d372">my_adjust_for_img_dbl</a> (void *features) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adjust scale if the image was initially doubled.  <a href="#a0637c08e54c06a4aec53db6f6740d372"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ab3adcb851dcaacc6db6b156d0858cf58">getTimesExtrema</a> (void *dog_pyr, int octvs, int intvls, float row, float col, unsigned int &amp;nMin, unsigned int &amp;nMax) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of times that a point in the image is higher or lower than the surroundings in the image-scale space.  <a href="#ab3adcb851dcaacc6db6b156d0858cf58"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a160f75144e1d992a79fc4aecd04a2865">getLaplacianValue</a> (void *dog_pyr, int octvs, int intvls, float row, float col) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the Laplacian value of the feature in the corresponing image in the pyramid.  <a href="#a160f75144e1d992a79fc4aecd04a2865"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a9a4dd4b2cbc99151e3de777277629754">insertCvSeqInCFeatureList</a> (void *features, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;<a class="el" href="classstd_1_1list.html">list</a>, unsigned int init_ID=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a sequence of openCV features into an MRPT feature list.  <a href="#a9a4dd4b2cbc99151e3de777277629754"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ad4be87746ca0f1fb2771b6851b07fbbd">convertCvSeqInCFeatureList</a> (void *features, <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html">CFeatureList</a> &amp;<a class="el" href="classstd_1_1list.html">list</a>, unsigned int init_ID=0, const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;ROI=<a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a sequence of openCV features into an MRPT feature list.  <a href="#ad4be87746ca0f1fb2771b6851b07fbbd"></a><br/></td></tr>
</table>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::TSIFTImplementation" ref="a76b67f8b3d01c9062c6a6230ab2d3084" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a76b67f8b3d01c9062c6a6230ab2d3084">mrpt::vision::CFeatureExtraction::TSIFTImplementation</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084ada9f89ce52ea2f8a29c274762943b752"></a><!-- doxytag: member="LoweBinary" ref="a76b67f8b3d01c9062c6a6230ab2d3084ada9f89ce52ea2f8a29c274762943b752" args="" -->LoweBinary</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084a08585180a97a342efd2cfded845932fb"></a><!-- doxytag: member="CSBinary" ref="a76b67f8b3d01c9062c6a6230ab2d3084a08585180a97a342efd2cfded845932fb" args="" -->CSBinary</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084a2892c19d9b23a19804c7b964adf18f6b"></a><!-- doxytag: member="VedaldiBinary" ref="a76b67f8b3d01c9062c6a6230ab2d3084a2892c19d9b23a19804c7b964adf18f6b" args="" -->VedaldiBinary</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084aa6fedc8b9946ea67a601976fa11411b9"></a><!-- doxytag: member="Hess" ref="a76b67f8b3d01c9062c6a6230ab2d3084aa6fedc8b9946ea67a601976fa11411b9" args="" -->Hess</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a76b67f8b3d01c9062c6a6230ab2d3084a62f7fb9cd79fdf2d336f3f5ea524349f"></a><!-- doxytag: member="OpenCV" ref="a76b67f8b3d01c9062c6a6230ab2d3084a62f7fb9cd79fdf2d336f3f5ea524349f" args="" -->OpenCV</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_feature_extraction_8h_source.html#l00079">79</a> of file <a class="el" href="_c_feature_extraction_8h_source.html">CFeatureExtraction.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7404da67a0eaaf6678d45452311527e1"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::CFeatureExtraction" ref="a7404da67a0eaaf6678d45452311527e1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CFeatureExtraction::CFeatureExtraction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

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

<p>Virtual destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3e40d7aee709211a01ac277a410b9542"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::computeDescriptors" ref="a3e40d7aee709211a01ac277a410b9542" args="(const CImage &amp;in_img, CFeatureList &amp;inout_features, TDescriptorType in_descriptor_list) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::computeDescriptors </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>in_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_features</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">TDescriptorType</a>&#160;</td>
          <td class="paramname"><em>in_descriptor_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute one (or more) descriptors for the given set of interest points onto the image, which may have been filled out manually or from <em>detectFeatures</em>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">inout_features</td><td>(input/output) The list of features whose descriptors are going to be computed. </td></tr>
    <tr><td class="paramname">in_descriptor_list</td><td>(input) The bitwise OR of one or several descriptors defined in TDescriptorType.</td></tr>
  </table>
  </dd>
</dl>
<p>Each value in "in_descriptor_list" represents one descriptor to be computed, for example: </p>
<div class="fragment"><pre class="fragment">    <span class="comment">// This call will compute both, SIFT and Spin-Image descriptors for a list of feature points lstFeats.</span>
    fext.computeDescriptors(img, lstFeats, <a class="code" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baaa6d87aecd8225b626044ddd641eecf99" title="SIFT descriptors.">descSIFT</a> | <a class="code" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baa3b3c2bd8233f458981d88226e9e2b517" title="Intensity-domain spin image descriptors.">descSpinImages</a> );
</pre></div><dl class="note"><dt><b>Note:</b></dt><dd>The SIFT descriptors for already located features can only be computed through the Hess and CSBinary implementations which may be specified in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#ae5b6f841ffa33c42e5a4e3869e5a330a">CFeatureExtraction::TOptions::SIFTOptions</a>.</dd>
<dd>
This call will also use additional parameters from <em>options</em> </dd></dl>

</div>
</div>
<a class="anchor" id="ad4be87746ca0f1fb2771b6851b07fbbd"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::convertCvSeqInCFeatureList" ref="ad4be87746ca0f1fb2771b6851b07fbbd" args="(void *features, CFeatureList &amp;list, unsigned int init_ID=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::convertCvSeqInCFeatureList </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>features</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>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a sequence of openCV features into an MRPT feature list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">features</td><td>The sequence of features. </td></tr>
    <tr><td class="paramname">list</td><td>[in-out] The list of MRPT features. </td></tr>
    <tr><td class="paramname">init_ID</td><td>[in][optional] The initial ID for the features (default = 0). </td></tr>
    <tr><td class="paramname">ROI</td><td>[in][optional] The initial ID for the features (default = empty ROI -&gt; not used). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aaa28b272b6a781352e0a50e09ca9c740"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::detectFeatures" ref="aaa28b272b6a781352e0a50e09ca9c740" args="(const CImage &amp;img, CFeatureList &amp;feats, const unsigned int init_ID=0, const unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI(), const CMatrixBool *mask=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::detectFeatures </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> *&#160;</td>
          <td class="paramname"><em>mask</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the method defined in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html" title="The set of parameters for all the detectors &amp; descriptor algorithms.">TOptions</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>(input) The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>(output) A complete list of features (containing a patch for each one of them if options.patchsize &gt; 0). </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>(op. input) Number of features to be extracted. Default: all possible. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: The whole image.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#a3e40d7aee709211a01ac277a410b9542" title="Compute one (or more) descriptors for the given set of interest points onto the image, which may have been filled out manually or from detectFeatures.">computeDescriptors</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a45ab43e9f8a2fa034545193f370feb28"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesBCD" ref="a45ab43e9f8a2fa034545193f370feb28" args="(const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesBCD </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the BCD method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>The list of extracted features. </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>Number of features to be extracted. Default: authomatic. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: All the image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2b80a9f9e557ebe5597cc05ae64d49b7"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesFAST" ref="a2b80a9f9e557ebe5597cc05ae64d49b7" args="(const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI(), const CMatrixBool *mask=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesFAST </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> *&#160;</td>
          <td class="paramname"><em>mask</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the FAST method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>The list of extracted features. </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>Number of features to be extracted. Default: authomatic. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: All the image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac0097b47456633e713c4882826995df8"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N" ref="ac0097b47456633e713c4882826995df8" args="(const int N, const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>N</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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Edward's "FASTER &amp; Better" detector, N=9,10,12. </p>

</div>
</div>
<a class="anchor" id="aa155938c2d89c2b0cac3de5cc58b8bfc"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesKLT" ref="aa155938c2d89c2b0cac3de5cc58b8bfc" args="(const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesKLT </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the KLT method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>The list of extracted features. </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>Number of features to be extracted. Default: authomatic. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: All the image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a53de22dda293794ff3aa098f9fc7c13e"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesSIFT" ref="a53de22dda293794ff3aa098f9fc7c13e" args="(const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesSIFT </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the SIFT method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>The list of extracted features. </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>Number of features to be extracted. Default: authomatic. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: All the image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af7246edfdeda311b0920dce669b4293a"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::extractFeaturesSURF" ref="af7246edfdeda311b0920dce669b4293a" args="(const CImage &amp;img, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, const TImageROI &amp;ROI=TImageROI()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::extractFeaturesSURF </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>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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a> &amp;&#160;</td>
          <td class="paramname"><em>ROI</em> = <code><a class="el" href="structmrpt_1_1vision_1_1_t_image_r_o_i.html">TImageROI</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract features from the image based on the SURF method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image from where to extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>The list of extracted features. </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>Number of features to be extracted. Default: authomatic. </td></tr>
    <tr><td class="paramname">ROI</td><td>(op. input) Region of Interest. Default: All the image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad3968ab244b874dc7de03efe7b446a5e"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::findMoreFeatures" ref="ad3968ab244b874dc7de03efe7b446a5e" args="(const CImage &amp;img, const CFeatureList &amp;inList, CFeatureList &amp;outList, unsigned int nDesiredFeats=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::findMoreFeatures </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>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">CFeatureList</a> &amp;&#160;</td>
          <td class="paramname"><em>inList</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>outList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeats</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract more features from the image (apart from the provided ones) based on the method defined in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html" title="The set of parameters for all the detectors &amp; descriptor algorithms.">TOptions</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>(input) The image from where to extract the images. </td></tr>
    <tr><td class="paramname">inList</td><td>(input) The actual features in the image. </td></tr>
    <tr><td class="paramname">outList</td><td>(output) The list of new features (containing a patch for each one of them if options.patchsize &gt; 0). </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>(op. input) Number of features to be extracted. Default: all possible.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>The more powerful class: <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...">mrpt::vision::CGenericFeatureTracker</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a160f75144e1d992a79fc4aecd04a2865"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::getLaplacianValue" ref="a160f75144e1d992a79fc4aecd04a2865" args="(void *dog_pyr, int octvs, int intvls, float row, float col) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::vision::CFeatureExtraction::getLaplacianValue </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>dog_pyr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>octvs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>intvls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>col</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the Laplacian value of the feature in the corresponing image in the pyramid. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dog_pyr</td><td>Pyramid of images. </td></tr>
    <tr><td class="paramname">octvs</td><td>Number of considered octaves. </td></tr>
    <tr><td class="paramname">intvls</td><td>Number of intervales in octaves. </td></tr>
    <tr><td class="paramname">row</td><td>The row of the feature in the original image. </td></tr>
    <tr><td class="paramname">col</td><td>The column of the feature in the original image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab3adcb851dcaacc6db6b156d0858cf58"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::getTimesExtrema" ref="ab3adcb851dcaacc6db6b156d0858cf58" args="(void *dog_pyr, int octvs, int intvls, float row, float col, unsigned int &amp;nMin, unsigned int &amp;nMax) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::getTimesExtrema </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>dog_pyr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>octvs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>intvls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int &amp;&#160;</td>
          <td class="paramname"><em>nMin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int &amp;&#160;</td>
          <td class="paramname"><em>nMax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the number of times that a point in the image is higher or lower than the surroundings in the image-scale space. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dog_pyr</td><td>Pyramid of images. </td></tr>
    <tr><td class="paramname">octvs</td><td>Number of considered octaves. </td></tr>
    <tr><td class="paramname">intvls</td><td>Number of intervales in octaves. </td></tr>
    <tr><td class="paramname">row</td><td>The row of the feature in the original image. </td></tr>
    <tr><td class="paramname">col</td><td>The column of the feature in the original image. </td></tr>
    <tr><td class="paramname">nMin</td><td>[out]: Times that the feature is lower than the surroundings. </td></tr>
    <tr><td class="paramname">nMax</td><td>[out]: Times that the feature is higher than the surroundings. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9a4dd4b2cbc99151e3de777277629754"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::insertCvSeqInCFeatureList" ref="a9a4dd4b2cbc99151e3de777277629754" args="(void *features, CFeatureList &amp;list, unsigned int init_ID=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::insertCvSeqInCFeatureList </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>features</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>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a sequence of openCV features into an MRPT feature list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">features</td><td>The sequence of features. </td></tr>
    <tr><td class="paramname">list</td><td>[in-out] The list of MRPT features. </td></tr>
    <tr><td class="paramname">init_ID</td><td>[in] The initial ID for the new features. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9cb80003a289d72d78060469ae264498"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors" ref="a9cb80003a289d72d78060469ae264498" args="(const CImage &amp;in_img, CFeatureList &amp;in_features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors </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>in_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>in_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute a log-polar image descriptor of the provided features into the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">in_features</td><td>(input/output) The list of features whose descriptors are going to be computed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Additional parameters from <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#a41225b6dbf97bf23f35eb9d5228931a8">CFeatureExtraction::TOptions::LogPolarImagesOptions</a> are used in this method. </dd></dl>

</div>
</div>
<a class="anchor" id="a97a0c030012df4d7733978429bf97f20"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors" ref="a97a0c030012df4d7733978429bf97f20" args="(const CImage &amp;in_img, CFeatureList &amp;in_features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors </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>in_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>in_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute a polar-image descriptor of the provided features into the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">in_features</td><td>(input/output) The list of features whose descriptors are going to be computed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Additional parameters from <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#ae20099345d63da7bd6b9c2c1a02b0c9e">CFeatureExtraction::TOptions::PolarImagesOptions</a> are used in this method. </dd></dl>

</div>
</div>
<a class="anchor" id="a8244c2a67575561fcda2fceda64a3975"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors" ref="a8244c2a67575561fcda2fceda64a3975" args="(const CImage &amp;in_img, CFeatureList &amp;in_features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors </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>in_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>in_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the SIFT descriptor of the provided features into the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">in_features</td><td>(input/output) The list of features whose descriptors are going to be computed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The SIFT descriptors for already located features can only be computed through the Hess and CSBinary implementations which may be specified in <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#ae5b6f841ffa33c42e5a4e3869e5a330a">CFeatureExtraction::TOptions::SIFTOptions</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a74396c8d7f11f60363d47dc0559d997d"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors" ref="a74396c8d7f11f60363d47dc0559d997d" args="(const CImage &amp;in_img, CFeatureList &amp;in_features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors </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>in_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>in_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the intensity-domain spin images descriptor of the provided features into the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">in_features</td><td>(input/output) The list of features whose descriptors are going to be computed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Additional parameters from <a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html#a80a43e7f025b152284345ab3cc0f910e">CFeatureExtraction::TOptions::SpinImagesOptions</a> are used in this method. </dd></dl>

</div>
</div>
<a class="anchor" id="a6a5f0ef815d7a2da1fd0ef616e10b4f6"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::internal_computeSurfDescriptors" ref="a6a5f0ef815d7a2da1fd0ef616e10b4f6" args="(const CImage &amp;in_img, CFeatureList &amp;in_features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::internal_computeSurfDescriptors </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>in_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>in_features</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the SURF descriptor of the provided features into the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>(input) The image from where to compute the descriptors. </td></tr>
    <tr><td class="paramname">in_features</td><td>(input/output) The list of features whose descriptors are going to be computed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0637c08e54c06a4aec53db6f6740d372"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::my_adjust_for_img_dbl" ref="a0637c08e54c06a4aec53db6f6740d372" args="(void *features) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::my_adjust_for_img_dbl </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>features</em></td><td>)</td>
          <td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adjust scale if the image was initially doubled. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">features</td><td>The sequence of features. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac87ec1b81d2fa49583fc4ad9e6ef313b"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::my_scale_space_extrema" ref="ac87ec1b81d2fa49583fc4ad9e6ef313b" args="(CFeatureList &amp;featList, void *dog_pyr, int octvs, int intvls, double contr_thr, int curv_thr, void *storage) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* mrpt::vision::CFeatureExtraction::my_scale_space_extrema </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>featList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>dog_pyr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>octvs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>intvls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>contr_thr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>curv_thr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>storage</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes extrema in the scale space. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dog_pyr</td><td>Pyramid of images. </td></tr>
    <tr><td class="paramname">octvs</td><td>Number of considered octaves. </td></tr>
    <tr><td class="paramname">intvls</td><td>Number of intervales in octaves. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5365d3e27c3d8adfe3a94d22542b4d6d"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::selectGoodFeaturesKLT" ref="a5365d3e27c3d8adfe3a94d22542b4d6d" args="(const CImage &amp;inImg, CFeatureList &amp;feats, unsigned int init_ID=0, unsigned int nDesiredFeatures=0, void *mask_=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CFeatureExtraction::selectGoodFeaturesKLT </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>inImg</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>feats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>init_ID</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nDesiredFeatures</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>mask_</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Select good features using the openCV implementation of the KLT method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>(input) The image from where to select extract the images. </td></tr>
    <tr><td class="paramname">feats</td><td>(output) A complete list of features (containing a patch for each one of them if options.patchsize &gt; 0). </td></tr>
    <tr><td class="paramname">nDesiredFeatures</td><td>(op. input) Number of features to be extracted. Default: all possible. </td></tr>
    <tr><td class="paramname">omitPixels</td><td>(op. input) A mask for determining the ROI. (0: do not omit this pixel, 1: omit this pixel) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ac40e9ebddcd82c27c090a8d8d74c7701"></a><!-- doxytag: member="mrpt::vision::CFeatureExtraction::options" ref="ac40e9ebddcd82c27c090a8d8d74c7701" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1vision_1_1_c_feature_extraction_1_1_t_options.html">TOptions</a> <a class="el" href="classmrpt_1_1vision_1_1_c_feature_extraction.html#ac40e9ebddcd82c27c090a8d8d74c7701">mrpt::vision::CFeatureExtraction::options</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the parameters of the desired method here before calling "detectFeatures". </p>

<p>Definition at line <a class="el" href="_c_feature_extraction_8h_source.html#l00204">204</a> of file <a class="el" href="_c_feature_extraction_8h_source.html">CFeatureExtraction.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>