Sophie

Sophie

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

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]</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><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>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">[mrpt-vision]</div>  </div>
</div>
<div class="contents">
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p><small> <a href="index.html#libs">Back to list of all libraries</a> | <a href="modules.html">See all modules</a> </small> <br/>
 </p>
<h2>Library <code>mrpt-vision</code></h2>
<hr/>
<p>This library includes some extensions to OpenCV functionality, plus some original classes:</p>
<ul>
<li>The namespace <a class="el" href="namespacemrpt_1_1vision_1_1pinhole.html" title="Functions related to pinhole camera models, point projections, etc.">mrpt::vision::pinhole</a> contains several projection and Jacobian auxiliary functions for projective cameras.</li>
</ul>
<ul>
<li>Sparse Bundle Adjustment algorithms. Implemented versions are:<ul>
<li><a class="el" href="group__bundle__adj.html#gabb5e8247d164906bce57a3c05b001953" title="Sparse Levenberg-Marquart solution to bundle adjustment - optimizes all the camera frames &amp; the landm...">mrpt::vision::bundle_adj_full</a> : Levenberg-Marquart full optimization of camera frames (6D) + feature points (3D).</li>
</ul>
</li>
</ul>
<ul>
<li>A versatile feature tracker. 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...">mrpt::vision::CGenericFeatureTracker</a> and the implementation <a class="el" href="structmrpt_1_1vision_1_1_c_feature_tracker___k_l.html" title="Track a set of features from old_img -&gt; new_img using sparse optimal flow (classic KL method)...">mrpt::vision::CFeatureTracker_KL</a></li>
</ul>
<ul>
<li><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>: A generic representation of a visual feature, with or without patch, with or without a set of descriptors.</li>
</ul>
<ul>
<li><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...">mrpt::vision::CFeatureExtraction</a>: A hub for a number of detection algorithms and different descriptors.</li>
</ul>
<ul>
<li><a class="el" href="classmrpt_1_1vision_1_1_c_video_file_writer.html" title="An output stream which takes a sequence of images and writes a video file in any of a given of compat...">mrpt::vision::CVideoFileWriter</a>: A class to write video files.</li>
</ul>
<ul>
<li><a class="el" href="classmrpt_1_1vision_1_1_c_undistort_map.html" title="Use this class to undistort images if the same distortion map is used over and over again...">mrpt::vision::CUndistortMap</a>: A cache of the map for undistorting image, very efficient for sequences of images all with the same distortion parameters.</li>
</ul>
<ul>
<li>This library defines a new type of observation (<a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html" title="Declares a class derived from &quot;CObservation&quot; that stores a Landmarks Map as seen from a stereo camera...">mrpt::slam::CObservationVisualLandmarks</a>) and a new type of map (<a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html" title="A class for storing a map of 3D probabilistic landmarks.">mrpt::slam::CLandmarksMap</a>).</li>
</ul>
<p>See all the classes in <a class="el" href="namespacemrpt_1_1vision.html" title="Classes for computer vision, detectors, features, etc.">mrpt::vision</a> </p>
<div class="dynheader">
Collaboration diagram for [mrpt-vision]:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__mrpt__vision__grp.png" border="0" alt="" usemap="#group____mrpt____vision____grp"/>
<map name="group____mrpt____vision____grp" id="group____mrpt____vision____grp">
<area shape="rect" id="node1" href="group__mrpt__maps__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="333,5,425,32"/><area shape="rect" id="node2" href="group__mrpt__obs__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="338,56,419,83"/><area shape="rect" id="node3" href="group__multidesc__desc.html" title="Multiresolution SIFTs (experimental)" alt="" coords="263,107,495,133"/><area shape="rect" id="node4" href="group__mrpt__slam__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="335,157,423,184"/><area shape="rect" id="node5" href="group__chessboard__calib.html" title="Chessboard calibration" alt="" coords="301,208,456,235"/><area shape="rect" id="node7" href="group__vision__tracking.html" title="Feature detection and tracking" alt="" coords="279,259,478,285"/><area shape="rect" id="node8" href="group__mrptvision__features.html" title="Feature detection, tracking, descriptors and matching" alt="" coords="213,309,544,336"/><area shape="rect" id="node9" href="group__bundle__adj.html" title="Bundle&#45;Adjustment methods" alt="" coords="285,360,472,387"/></map>
</td></tr></table></center>
</div>
<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">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html">mrpt::slam::CLandmark</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The class for storing "landmarks" (visual or laser-scan-extracted features,...)  <a href="classmrpt_1_1slam_1_1_c_landmark.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">mrpt::slam::CLandmarksMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A class for storing a map of 3D probabilistic landmarks.  <a href="classmrpt_1_1slam_1_1_c_landmarks_map.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">mrpt::slam::CObservationVisualLandmarks</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a class derived from "CObservation" that stores a Landmarks Map as seen from a stereo camera at a given instant of time.  <a href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html">mrpt::vision::CCamModel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represent a pinhole camera model for Monocular SLAM and implements some associated Jacobians.  <a href="classmrpt_1_1vision_1_1_c_cam_model.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_image_pyramid.html">mrpt::vision::CImagePyramid</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds and builds a pyramid of images: starting with an image at full resolution (octave=1), it builds a number of half-resolution images: octave=2 at 1/2 , octave=3 at 1/2^2, octave=N at 1/2^(N-1).  <a href="classmrpt_1_1vision_1_1_c_image_pyramid.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_undistort_map.html">mrpt::vision::CUndistortMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Use this class to undistort images if the same distortion map is used over and over again.  <a href="classmrpt_1_1vision_1_1_c_undistort_map.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_video_file_writer.html">mrpt::vision::CVideoFileWriter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An output stream which takes a sequence of images and writes a video file in any of a given of compatible formats.  <a href="classmrpt_1_1vision_1_1_c_video_file_writer.html#details">More...</a><br/></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_t_feature_observation.html">mrpt::vision::TFeatureObservation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One feature observation entry, used within sequences with <a class="el" href="structmrpt_1_1vision_1_1_t_sequence_feature_observations.html" title="A complete sequence of observations of features from different camera frames (poses).">TSequenceFeatureObservations</a>.  <a href="structmrpt_1_1vision_1_1_t_feature_observation.html#details">More...</a><br/></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_t_relative_feature_pos.html">mrpt::vision::TRelativeFeaturePos</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One relative feature observation entry, used with some relative bundle-adjustment functions.  <a href="structmrpt_1_1vision_1_1_t_relative_feature_pos.html#details">More...</a><br/></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_t_sequence_feature_observations.html">mrpt::vision::TSequenceFeatureObservations</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A complete sequence of observations of features from different camera frames (poses).  <a href="structmrpt_1_1vision_1_1_t_sequence_feature_observations.html#details">More...</a><br/></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_t_stereo_system_params.html">mrpt::vision::TStereoSystemParams</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameters associated to a stereo system.  <a href="structmrpt_1_1vision_1_1_t_stereo_system_params.html#details">More...</a><br/></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_t_r_o_i.html">mrpt::vision::TROI</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure for storing a 3D ROI.  <a href="structmrpt_1_1vision_1_1_t_r_o_i.html#details">More...</a><br/></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_t_image_r_o_i.html">mrpt::vision::TImageROI</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure for defining a ROI within an image.  <a href="structmrpt_1_1vision_1_1_t_image_r_o_i.html#details">More...</a><br/></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_t_matching_options.html">mrpt::vision::TMatchingOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure containing options for the matching.  <a href="structmrpt_1_1vision_1_1_t_matching_options.html#details">More...</a><br/></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_t_multi_res_matching_output.html">mrpt::vision::TMultiResMatchingOutput</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct containing the output after matching multi-resolution SIFT-like descriptors.  <a href="structmrpt_1_1vision_1_1_t_multi_res_matching_output.html#details">More...</a><br/></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_t_multi_res_desc_match_options.html">mrpt::vision::TMultiResDescMatchOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct containing the options when matching multi-resolution SIFT-like descriptors.  <a href="structmrpt_1_1vision_1_1_t_multi_res_desc_match_options.html#details">More...</a><br/></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_t_multi_res_desc_options.html">mrpt::vision::TMultiResDescOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct containing the options when computing the multi-resolution SIFT-like descriptors.  <a href="structmrpt_1_1vision_1_1_t_multi_res_desc_options.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1slam.html">mrpt::slam</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>This namespace contains algorithms for SLAM, localization, map building, representation of robot's actions and observations, and representation of many kinds of metric maps. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1vision_1_1pinhole.html">mrpt::vision::pinhole</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Functions related to pinhole camera models, point projections, etc. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1vision.html">mrpt::vision</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Classes for computer vision, detectors, features, etc. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__bundle__adj.html">Bundle-Adjustment methods</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrptvision__features.html">Feature detection, tracking, descriptors and matching</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__chessboard__calib.html">Chessboard calibration</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multidesc__desc.html">Multiresolution SIFTs (experimental)</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vision__tracking.html">Feature detection and tracking</a></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of a feature ID.  <a href="#ga5bfc93fce347933b63640f2de874ba26"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga6c3892de843a8cf3bb52017d2933020f">mrpt::vision::TLandmarkID</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique IDs for landmarks.  <a href="#ga6c3892de843a8cf3bb52017d2933020f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gae9363bed7e308d38b23c0bcac8b5e5d8">mrpt::vision::TCameraPoseID</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique IDs for camera frames (poses)  <a href="#gae9363bed7e308d38b23c0bcac8b5e5d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
<a class="el" href="structmrpt_1_1aligned__containers.html">mrpt::aligned_containers</a><br class="typebreak"/>
&lt; TCameraPoseID, CPose3D &gt;<br class="typebreak"/>
::map_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga62b8ac1f5f748ac325c921ee16b28ff7">mrpt::vision::TFramePosesMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of camera frames (6D poses) indexed by unique IDs.  <a href="#ga62b8ac1f5f748ac325c921ee16b28ff7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
<a class="el" href="structmrpt_1_1aligned__containers.html">mrpt::aligned_containers</a><br class="typebreak"/>
&lt; CPose3D &gt;::vector_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gabe5f1a7756ced9db83e245414fd54def">mrpt::vision::TFramePosesVec</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of camera frames (6D poses), which assumes indexes are unique, consecutive IDs.  <a href="#gabe5f1a7756ced9db83e245414fd54def"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1map.html">std::map</a>&lt; TLandmarkID, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaef17b094c368f8a0ea926e8af3183feb">mrpt::vision::TLandmarkLocationsMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of landmarks (3D points) indexed by unique IDs.  <a href="#gaef17b094c368f8a0ea926e8af3183feb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaa8fa8b53643b4e650a959867691e3adc">mrpt::vision::TLandmarkLocationsVec</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of landmarks (3D points), which assumes indexes are unique, consecutive IDs.  <a href="#gaa8fa8b53643b4e650a959867691e3adc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef TFeatureTrackStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga9ba0cae6d18573372451f923bb21fa55">mrpt::vision::TKLTFeatureStatus</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For backward compatibility.  <a href="#ga9ba0cae6d18573372451f923bb21fa55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1map.html">std::map</a><br class="typebreak"/>
&lt; <a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a>, <br class="typebreak"/>
TRelativeFeaturePos &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gac7efcc456498739aa62ed14e8173892a">mrpt::vision::TRelativeFeaturePosMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An index of feature IDs and their relative locations.  <a href="#gac7efcc456498739aa62ed14e8173892a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga3a5b54ab814bafc8bb108e37bbee4e19">mrpt::vision::TFeatureType</a> { <br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a9a6d1ea2a8c8957c81147e2ce5e9f3f1">mrpt::vision::featNotDefined</a> =  -1, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19af521d70dbb18c7c919297ac034645d4e">mrpt::vision::featKLT</a> =  0, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a7850031018540bfc2eee15ccce8a0ca5">mrpt::vision::featHarris</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19aeefe4a844cd023b8dc922b01386d98f2">mrpt::vision::featBCD</a>, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a8a50f7cac59b399dec959c764bcedd62">mrpt::vision::featSIFT</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a0928aa6d11142c924e2f2e60598559d5">mrpt::vision::featSURF</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a40951a6fbc35e0b47a5883f70dd09e0c">mrpt::vision::featBeacon</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a809c126ef20588226acd0893fa7a6ed5">mrpt::vision::featFAST</a>, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19aa7ab4f83542ee3a069cb05a25af0984c">mrpt::vision::featFASTER9</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19a8dd8e13c6510ea136028e6338f795006">mrpt::vision::featFASTER10</a>, 
<a class="el" href="group__mrpt__vision__grp.html#gga3a5b54ab814bafc8bb108e37bbee4e19aa630e1c730c034cecffc4d11f7337c71">mrpt::vision::featFASTER12</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Types of features - This means that the point has been detected with this algorithm, which is independent of additional descriptors a feature may also have.  <a href="group__mrpt__vision__grp.html#ga3a5b54ab814bafc8bb108e37bbee4e19">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">mrpt::vision::TDescriptorType</a> { <br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baad98c1e9e6948d609e0a2b639dffc0867">mrpt::vision::descAny</a> =  0, 
<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baaa6d87aecd8225b626044ddd641eecf99">mrpt::vision::descSIFT</a> =  1, 
<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baa15c8a84d8e1efe0fc5c07587e124f3b0">mrpt::vision::descSURF</a> =  2, 
<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baa3b3c2bd8233f458981d88226e9e2b517">mrpt::vision::descSpinImages</a> =  4, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baa9b8e2f748db92bffe1d6b7a21d21726f">mrpt::vision::descPolarImages</a> =  8, 
<a class="el" href="group__mrpt__vision__grp.html#gga1953f4dfcaf2e07e1049bc0a6bbf53baa390c61465755c909c19e4b2fc5763af6">mrpt::vision::descLogPolarImages</a> =  16
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescriptors to indicate which descriptors are to be computed for features.  <a href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga0437f34e59ac06cddc3a490e2605bb71">mrpt::vision::TFeatureTrackStatus</a> { <br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a7b4b02aab37b191b162d7ecfd74c4fe4">mrpt::vision::status_IDLE</a> =  0, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a0aae44767d442aabe1ded915e815b68f">mrpt::vision::status_TRACKED</a> =  5, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a1911a86068b8ba81d0ea8739c3d7a795">mrpt::vision::status_OOB</a> =  1, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a49ca2957bd7ecaaa912902105b24c5e0">mrpt::vision::status_LOST</a> =  10, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a9879fb00796ddd90580b390667c02710">mrpt::vision::statusKLT_IDLE</a> =  0, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a209430eccc30485a0549a1ba3fea75c7">mrpt::vision::statusKLT_OOB</a> =  1, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71ae7d7ef9e6306fb1a546223664b7d43af">mrpt::vision::statusKLT_SMALL_DET</a> =  2, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71a4574d88abb293be6abb2d5a9f412ce68">mrpt::vision::statusKLT_LARGE_RESIDUE</a> =  3, 
<br/>
&#160;&#160;<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71afe042395cd26c5b51149533b15a99f39">mrpt::vision::statusKLT_MAX_RESIDUE</a> =  4, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71ab3fa909025d3002ce2c3772a8d9def9a">mrpt::vision::statusKLT_TRACKED</a> =  5, 
<a class="el" href="group__mrpt__vision__grp.html#gga0437f34e59ac06cddc3a490e2605bb71abf7ddf49b7347c2280d013d76856bd9d">mrpt::vision::statusKLT_MAX_ITERATIONS</a> =  6
<br/>
 }</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga948d8f70569109fa280c908b84cd3987">mrpt::vision::pinhole::projectPoints_no_distortion</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> &gt; &amp;in_points_3D, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;cameraPose, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;intrinsicParams, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;projectedPoints, bool accept_points_behind=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix (undistorted projection model)  <a href="#ga948d8f70569109fa280c908b84cd3987"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;bool INVERSE_CAM_POSE&gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">TPixelCoordf&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga0f1462e4b01333122fadc40c409f55c5">mrpt::vision::pinhole::projectPoint_no_distortion</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cam_params, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;F, const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;P)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project a single 3D point with global coordinates P into a camera at pose F, without distortion parameters.  <a href="#ga0f1462e4b01333122fadc40c409f55c5"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename POINT &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gadb0682ae91a2314b362985c7895dec73">mrpt::vision::pinhole::projectPoint_no_distortion</a> (const POINT &amp;in_point_wrt_cam, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cam_params, TPixelCoordf &amp;out_projectedPoints)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga143e30403c5697c2a106c17b75b3daf8">mrpt::vision::pinhole::projectPoints_with_distortion</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> &gt; &amp;in_points_3D, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;cameraPose, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;intrinsicParams, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; double &gt; &amp;distortionParams, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;projectedPoints, bool accept_points_behind=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix and distortion parameters (radial and tangential distortions projection model)  <a href="#ga143e30403c5697c2a106c17b75b3daf8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga78a4d3f2289990a057df57b20402bfcb">mrpt::vision::pinhole::projectPoint_with_distortion</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;in_point_wrt_cam, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;in_cam_params, TPixelCoordf &amp;out_projectedPoints, bool accept_points_behind=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project one 3D point into a camera using its calibration matrix and distortion parameters (radial and tangential distortions projection model)  <a href="#ga78a4d3f2289990a057df57b20402bfcb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gad2c793bc2a3c1552e3084228f90171e7">mrpt::vision::pinhole::projectPoints_with_distortion</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &gt; &amp;P, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;params, const CPose3DQuat &amp;cameraPose, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;pixels, bool accept_points_behind=false)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga36442f7cec4a377cee9d180afc0b3ac6">mrpt::vision::pinhole::undistort_points</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;srcDistortedPixels, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;dstUndistortedPixels, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;intrinsicParams, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; double &gt; &amp;distortionParams)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortion coefficients.  <a href="#ga36442f7cec4a377cee9d180afc0b3ac6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga34c41fd5660ccdbcd49b7733a41824f8">mrpt::vision::pinhole::undistort_points</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;srcDistortedPixels, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;dstUndistortedPixels, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cameraModel)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortion coefficients.  <a href="#ga34c41fd5660ccdbcd49b7733a41824f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaec6f784e2f55e5476d108ace5182ef5f">mrpt::vision::pinhole::undistort_point</a> (const TPixelCoordf &amp;inPt, TPixelCoordf &amp;outPt, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cameraModel)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Undistort one point given by its pixel coordinates and the camera parameters.  <a href="#gaec6f784e2f55e5476d108ace5182ef5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga76734611e12d95e2d1f825d0a8d7b2c9">mrpt::vision::openCV_cross_correlation</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_1utils_1_1_c_image.html">CImage</a> &amp;patch_img, size_t &amp;x_max, size_t &amp;y_max, double &amp;max_val, int x_search_ini=-1, int y_search_ini=-1, int x_search_size=-1, int y_search_size=-1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate This implementation reduced computation time.  <a href="#ga76734611e12d95e2d1f825d0a8d7b2c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga53129d1715497d147744fc65b74dd339">mrpt::vision::flip</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Invert an image using OpenCV function.  <a href="#ga53129d1715497d147744fc65b74dd339"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gae1bdfa0784cd25618e11bc8baedb81fd">mrpt::vision::pixelTo3D</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a> &amp;xy, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;A)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract a UNITARY 3D vector in the direction of a 3D point, given from its (x,y) pixels coordinates, and the camera intrinsic coordinates.  <a href="#gae1bdfa0784cd25618e11bc8baedb81fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga75f4e50fe891900c856f3d4c39ca805b">mrpt::vision::buildIntrinsicParamsMatrix</a> (const double focalLengthX, const double focalLengthY, const double centerX, const double centerY)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds the intrinsic parameters matrix A from parameters:  <a href="#ga75f4e50fe891900c856f3d4c39ca805b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga6854cf65e2102db34841099588c4e107">mrpt::vision::defaultIntrinsicParamsMatrix</a> (unsigned int camIndex=0, unsigned int resolutionX=320, unsigned int resolutionY=240)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stored, default intrinsic params matrix for a given camera:  <a href="#ga6854cf65e2102db34841099588c4e107"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga283472c90efde179b76bba7f278da263">mrpt::vision::deleteRepeatedFeats</a> (CFeatureList &amp;list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Explore the feature list and removes features which are in the same coordinates.  <a href="#ga283472c90efde179b76bba7f278da263"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gadbb7002c4a2e832ff309c1eefad818ea">mrpt::vision::rowChecking</a> (CFeatureList &amp;leftList, CFeatureList &amp;rightList, float threshold=1.0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for correspondences which are not in the same row and deletes them.  <a href="#gadbb7002c4a2e832ff309c1eefad818ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga537c61afa2d0ef023376d933ba0c50fa">mrpt::vision::getDispersion</a> (const CFeatureList &amp;list, vector_float &amp;std, vector_float &amp;mean)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the dispersion of the features in the image.  <a href="#ga537c61afa2d0ef023376d933ba0c50fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga34408636ab4c6a218c6da6bd9bb51143">mrpt::vision::correctDistortion</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_1utils_1_1_c_image.html">CImage</a> &amp;out_img, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;A, const vector_double &amp;dist_coeffs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new image where distortion has been removed.  <a href="#ga34408636ab4c6a218c6da6bd9bb51143"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gae9ba8ad3c1fea073285a3a910e4dc153">mrpt::vision::computeMsd</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;list, const poses::CPose3D &amp;Rt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the mean squared distance between a set of 3D correspondences ...  <a href="#gae9ba8ad3c1fea073285a3a910e4dc153"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga97bf65f8894c31cb7b199c3e0c631404">mrpt::vision::cloudsToMatchedList</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;cloud1, const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;cloud2, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;outList)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform two clouds of 3D points into a matched list of points ...  <a href="#ga97bf65f8894c31cb7b199c3e0c631404"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga8bb4c04a6114aa09b09eb2fa7a66e131">mrpt::vision::computeMainOrientation</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;image, unsigned int x, unsigned int y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the main orientation of a set of points with an image (for using in SIFT-based algorithms)  <a href="#ga8bb4c04a6114aa09b09eb2fa7a66e131"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga78b70d757600704d6cd9a3ca37b838e8">mrpt::vision::normalizeImage</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;image, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;nimage)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalizes the brigthness and contrast of an image by setting its mean value to zero and its standard deviation to unit.  <a href="#ga78b70d757600704d6cd9a3ca37b838e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gad073bd2b1235df6a75e73a72df701204">mrpt::vision::matchFeatures</a> (const CFeatureList &amp;list1, const CFeatureList &amp;list2, CMatchedFeatureList &amp;matches, const TMatchingOptions &amp;options=TMatchingOptions(), const TStereoSystemParams &amp;params=TStereoSystemParams())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the matches between two lists of features which must be of the same type.  <a href="#gad073bd2b1235df6a75e73a72df701204"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga1d6950fc414d2b15fb0ecb349a84098a">mrpt::vision::generateMask</a> (const CMatchedFeatureList &amp;mList, <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &amp;mask1, <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &amp;mask2, int wSize=10)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the Sum of Absolutes Differences (range [0,1]) between two patches.  <a href="#ga1d6950fc414d2b15fb0ecb349a84098a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga91460061069d5c5223ca96e997f0023a">mrpt::vision::computeSAD</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;patch1, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;patch2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the Sum of Absolutes Differences (range [0,1]) between two patches.  <a href="#ga91460061069d5c5223ca96e997f0023a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaa6de04e12e3fad427c0e10ab6f770bcf">mrpt::vision::addFeaturesToImage</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;inImg, const CFeatureList &amp;theList, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;outImg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw rectangles around each of the features on a copy of the input image.  <a href="#gaa6de04e12e3fad427c0e10ab6f770bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gad219474cf31289ceec53218a2accc73e">mrpt::vision::projectMatchedFeatures</a> (const CFeatureList &amp;leftList, const CFeatureList &amp;rightList, vector&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;vP3D, const TStereoSystemParams &amp;params=TStereoSystemParams())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the 3D position of a set of matched features from their coordinates in the images.  <a href="#gad219474cf31289ceec53218a2accc73e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga30399c3913ad2700d9097dfdffd75cc8">mrpt::vision::projectMatchedFeature</a> (const CFeaturePtr &amp;leftFeat, const CFeaturePtr &amp;rightFeat, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;p3D, const TStereoSystemParams &amp;params=TStereoSystemParams())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the 3D position of a particular matched feature.  <a href="#ga30399c3913ad2700d9097dfdffd75cc8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaa842d7fb358a77d51ebb78d871de9088">mrpt::vision::projectMatchedFeatures</a> (CMatchedFeatureList &amp;mfList, const TStereoSystemParams &amp;param, <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;landmarks)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project a list of matched features into the 3D space, using the provided parameters of the stereo system.  <a href="#gaa842d7fb358a77d51ebb78d871de9088"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga887ad9b3e2329ffc707e888f1977499d">mrpt::vision::projectMatchedFeatures</a> (CFeatureList &amp;leftList, CFeatureList &amp;rightList, const TStereoSystemParams &amp;param, <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;landmarks)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project a pair of feature lists into the 3D space, using the provided options for the stereo system.  <a href="#ga887ad9b3e2329ffc707e888f1977499d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gae2f5e513a60be2eae856a942a7d1c4c7">mrpt::vision::StereoObs2BRObs</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html">CObservationStereoImages</a> &amp;inObs, const vector&lt; double &gt; &amp;sg, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;outObs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a stereo images observation into a bearing and range observation.  <a href="#gae2f5e513a60be2eae856a942a7d1c4c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gabd4f827a4fc656d2bf8a17fbba7d85a8">mrpt::vision::StereoObs2BRObs</a> (const CMatchedFeatureList &amp;inMatches, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;intrinsicParams, const double &amp;baseline, const CPose3D &amp;sensorPose, const vector&lt; double &gt; &amp;sg, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;outObs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a matched feature list into a bearing and range observation (some of the stereo camera system must be provided).  <a href="#gabd4f827a4fc656d2bf8a17fbba7d85a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gae387faf9d64551d68f067cf506cacf3a">mrpt::vision::StereoObs2BRObs</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;inObs, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;outObs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a CObservationVisualLandmarks into a bearing and range observation (without any covariances).  <a href="#gae387faf9d64551d68f067cf506cacf3a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga13bd323aaefe18e181cad689468a113f">mrpt::vision::computeStereoRectificationMaps</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">TCamera</a> &amp;cam1, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">TCamera</a> &amp;cam2, const poses::CPose3D &amp;rightCameraPose, void *outMap1x, void *outMap1y, void *outMap2x, void *outMap2y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a pair of x-and-y maps for stereo rectification from a pair of cameras and the relative pose of the second one wrt the first one.  <a href="#ga13bd323aaefe18e181cad689468a113f"></a><br/></td></tr>
</table>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="gae9363bed7e308d38b23c0bcac8b5e5d8"></a><!-- doxytag: member="mrpt::vision::TCameraPoseID" ref="gae9363bed7e308d38b23c0bcac8b5e5d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="group__mrpt__vision__grp.html#gae9363bed7e308d38b23c0bcac8b5e5d8">mrpt::vision::TCameraPoseID</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unique IDs for camera frames (poses) </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00054">54</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5bfc93fce347933b63640f2de874ba26"></a><!-- doxytag: member="mrpt::vision::TFeatureID" ref="ga5bfc93fce347933b63640f2de874ba26" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition of a feature ID. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00051">51</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga62b8ac1f5f748ac325c921ee16b28ff7"></a><!-- doxytag: member="mrpt::vision::TFramePosesMap" ref="ga62b8ac1f5f748ac325c921ee16b28ff7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1aligned__containers.html">mrpt::aligned_containers</a>&lt;TCameraPoseID,CPose3D&gt;::map_t <a class="el" href="group__mrpt__vision__grp.html#ga62b8ac1f5f748ac325c921ee16b28ff7">mrpt::vision::TFramePosesMap</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of camera frames (6D poses) indexed by unique IDs. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00056">56</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="gabe5f1a7756ced9db83e245414fd54def"></a><!-- doxytag: member="mrpt::vision::TFramePosesVec" ref="gabe5f1a7756ced9db83e245414fd54def" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1aligned__containers.html">mrpt::aligned_containers</a>&lt;CPose3D&gt;::vector_t <a class="el" href="group__mrpt__vision__grp.html#gabe5f1a7756ced9db83e245414fd54def">mrpt::vision::TFramePosesVec</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of camera frames (6D poses), which assumes indexes are unique, consecutive IDs. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00057">57</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga9ba0cae6d18573372451f923bb21fa55"></a><!-- doxytag: member="mrpt::vision::TKLTFeatureStatus" ref="ga9ba0cae6d18573372451f923bb21fa55" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef TFeatureTrackStatus <a class="el" href="group__mrpt__vision__grp.html#ga0437f34e59ac06cddc3a490e2605bb71">mrpt::vision::TKLTFeatureStatus</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For backward compatibility. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00114">114</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga6c3892de843a8cf3bb52017d2933020f"></a><!-- doxytag: member="mrpt::vision::TLandmarkID" ref="ga6c3892de843a8cf3bb52017d2933020f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="group__mrpt__vision__grp.html#ga6c3892de843a8cf3bb52017d2933020f">mrpt::vision::TLandmarkID</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unique IDs for landmarks. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00053">53</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaef17b094c368f8a0ea926e8af3183feb"></a><!-- doxytag: member="mrpt::vision::TLandmarkLocationsMap" ref="gaef17b094c368f8a0ea926e8af3183feb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1map.html">std::map</a>&lt;TLandmarkID,<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a>&gt; <a class="el" href="group__mrpt__vision__grp.html#gaef17b094c368f8a0ea926e8af3183feb">mrpt::vision::TLandmarkLocationsMap</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of landmarks (3D points) indexed by unique IDs. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00059">59</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaa8fa8b53643b4e650a959867691e3adc"></a><!-- doxytag: member="mrpt::vision::TLandmarkLocationsVec" ref="gaa8fa8b53643b4e650a959867691e3adc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a>&gt; <a class="el" href="group__mrpt__vision__grp.html#gaa8fa8b53643b4e650a959867691e3adc">mrpt::vision::TLandmarkLocationsVec</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of landmarks (3D points), which assumes indexes are unique, consecutive IDs. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00060">60</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="gac7efcc456498739aa62ed14e8173892a"></a><!-- doxytag: member="mrpt::vision::TRelativeFeaturePosMap" ref="gac7efcc456498739aa62ed14e8173892a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1map.html">std::map</a>&lt;<a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a>, TRelativeFeaturePos&gt; <a class="el" href="group__mrpt__vision__grp.html#gac7efcc456498739aa62ed14e8173892a">mrpt::vision::TRelativeFeaturePosMap</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An index of feature IDs and their relative locations. </p>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00140">140</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga1953f4dfcaf2e07e1049bc0a6bbf53ba"></a><!-- doxytag: member="mrpt::vision::TDescriptorType" ref="ga1953f4dfcaf2e07e1049bc0a6bbf53ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">mrpt::vision::TDescriptorType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The bitwise OR combination of values of TDescriptorType are used in <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> to indicate which descriptors are to be computed for features. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baad98c1e9e6948d609e0a2b639dffc0867"></a><!-- doxytag: member="descAny" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baad98c1e9e6948d609e0a2b639dffc0867" args="" -->descAny</em>&nbsp;</td><td>
<p>Used in some methods to mean "any of the present descriptors". </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baaa6d87aecd8225b626044ddd641eecf99"></a><!-- doxytag: member="descSIFT" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baaa6d87aecd8225b626044ddd641eecf99" args="" -->descSIFT</em>&nbsp;</td><td>
<p>SIFT descriptors. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baa15c8a84d8e1efe0fc5c07587e124f3b0"></a><!-- doxytag: member="descSURF" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baa15c8a84d8e1efe0fc5c07587e124f3b0" args="" -->descSURF</em>&nbsp;</td><td>
<p>SURF descriptors. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baa3b3c2bd8233f458981d88226e9e2b517"></a><!-- doxytag: member="descSpinImages" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baa3b3c2bd8233f458981d88226e9e2b517" args="" -->descSpinImages</em>&nbsp;</td><td>
<p>Intensity-domain spin image descriptors. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baa9b8e2f748db92bffe1d6b7a21d21726f"></a><!-- doxytag: member="descPolarImages" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baa9b8e2f748db92bffe1d6b7a21d21726f" args="" -->descPolarImages</em>&nbsp;</td><td>
<p>Polar image descriptor. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1953f4dfcaf2e07e1049bc0a6bbf53baa390c61465755c909c19e4b2fc5763af6"></a><!-- doxytag: member="descLogPolarImages" ref="gga1953f4dfcaf2e07e1049bc0a6bbf53baa390c61465755c909c19e4b2fc5763af6" args="" -->descLogPolarImages</em>&nbsp;</td><td>
<p>Log-Polar image descriptor. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00082">82</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0437f34e59ac06cddc3a490e2605bb71"></a><!-- doxytag: member="mrpt::vision::TFeatureTrackStatus" ref="ga0437f34e59ac06cddc3a490e2605bb71" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__vision__grp.html#ga0437f34e59ac06cddc3a490e2605bb71">mrpt::vision::TFeatureTrackStatus</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="gga0437f34e59ac06cddc3a490e2605bb71a7b4b02aab37b191b162d7ecfd74c4fe4"></a><!-- doxytag: member="status_IDLE" ref="gga0437f34e59ac06cddc3a490e2605bb71a7b4b02aab37b191b162d7ecfd74c4fe4" args="" -->status_IDLE</em>&nbsp;</td><td>
<p>Inactive (right after detection, and before being tried to track) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a0aae44767d442aabe1ded915e815b68f"></a><!-- doxytag: member="status_TRACKED" ref="gga0437f34e59ac06cddc3a490e2605bb71a0aae44767d442aabe1ded915e815b68f" args="" -->status_TRACKED</em>&nbsp;</td><td>
<p>Feature correctly tracked. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a1911a86068b8ba81d0ea8739c3d7a795"></a><!-- doxytag: member="status_OOB" ref="gga0437f34e59ac06cddc3a490e2605bb71a1911a86068b8ba81d0ea8739c3d7a795" args="" -->status_OOB</em>&nbsp;</td><td>
<p>Feature felt Out Of Bounds. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a49ca2957bd7ecaaa912902105b24c5e0"></a><!-- doxytag: member="status_LOST" ref="gga0437f34e59ac06cddc3a490e2605bb71a49ca2957bd7ecaaa912902105b24c5e0" args="" -->status_LOST</em>&nbsp;</td><td>
<p>Unable to track this feature. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a9879fb00796ddd90580b390667c02710"></a><!-- doxytag: member="statusKLT_IDLE" ref="gga0437f34e59ac06cddc3a490e2605bb71a9879fb00796ddd90580b390667c02710" args="" -->statusKLT_IDLE</em>&nbsp;</td><td>
<p>Inactive. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a209430eccc30485a0549a1ba3fea75c7"></a><!-- doxytag: member="statusKLT_OOB" ref="gga0437f34e59ac06cddc3a490e2605bb71a209430eccc30485a0549a1ba3fea75c7" args="" -->statusKLT_OOB</em>&nbsp;</td><td>
<p>Out Of Bounds (Value identical to status_OOB) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71ae7d7ef9e6306fb1a546223664b7d43af"></a><!-- doxytag: member="statusKLT_SMALL_DET" ref="gga0437f34e59ac06cddc3a490e2605bb71ae7d7ef9e6306fb1a546223664b7d43af" args="" -->statusKLT_SMALL_DET</em>&nbsp;</td><td>
<p>Determinant of the matrix too small. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71a4574d88abb293be6abb2d5a9f412ce68"></a><!-- doxytag: member="statusKLT_LARGE_RESIDUE" ref="gga0437f34e59ac06cddc3a490e2605bb71a4574d88abb293be6abb2d5a9f412ce68" args="" -->statusKLT_LARGE_RESIDUE</em>&nbsp;</td><td>
<p>Error too big. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71afe042395cd26c5b51149533b15a99f39"></a><!-- doxytag: member="statusKLT_MAX_RESIDUE" ref="gga0437f34e59ac06cddc3a490e2605bb71afe042395cd26c5b51149533b15a99f39" args="" -->statusKLT_MAX_RESIDUE</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71ab3fa909025d3002ce2c3772a8d9def9a"></a><!-- doxytag: member="statusKLT_TRACKED" ref="gga0437f34e59ac06cddc3a490e2605bb71ab3fa909025d3002ce2c3772a8d9def9a" args="" -->statusKLT_TRACKED</em>&nbsp;</td><td>
<p>Feature correctly tracked (Value identical to status_TRACKED) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0437f34e59ac06cddc3a490e2605bb71abf7ddf49b7347c2280d013d76856bd9d"></a><!-- doxytag: member="statusKLT_MAX_ITERATIONS" ref="gga0437f34e59ac06cddc3a490e2605bb71abf7ddf49b7347c2280d013d76856bd9d" args="" -->statusKLT_MAX_ITERATIONS</em>&nbsp;</td><td>
<p>Iteration maximum reached. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00092">92</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3a5b54ab814bafc8bb108e37bbee4e19"></a><!-- doxytag: member="mrpt::vision::TFeatureType" ref="ga3a5b54ab814bafc8bb108e37bbee4e19" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__vision__grp.html#ga3a5b54ab814bafc8bb108e37bbee4e19">mrpt::vision::TFeatureType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Types of features - This means that the point has been detected with this algorithm, which is independent of additional descriptors a feature may also have. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a9a6d1ea2a8c8957c81147e2ce5e9f3f1"></a><!-- doxytag: member="featNotDefined" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a9a6d1ea2a8c8957c81147e2ce5e9f3f1" args="" -->featNotDefined</em>&nbsp;</td><td>
<p>Non-defined feature (also used for Occupancy features) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19af521d70dbb18c7c919297ac034645d4e"></a><!-- doxytag: member="featKLT" ref="gga3a5b54ab814bafc8bb108e37bbee4e19af521d70dbb18c7c919297ac034645d4e" args="" -->featKLT</em>&nbsp;</td><td>
<p>Kanade-Lucas-Tomasi feature [SHI'94]. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a7850031018540bfc2eee15ccce8a0ca5"></a><!-- doxytag: member="featHarris" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a7850031018540bfc2eee15ccce8a0ca5" args="" -->featHarris</em>&nbsp;</td><td>
<p>Harris border and corner detector [HARRIS]. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19aeefe4a844cd023b8dc922b01386d98f2"></a><!-- doxytag: member="featBCD" ref="gga3a5b54ab814bafc8bb108e37bbee4e19aeefe4a844cd023b8dc922b01386d98f2" args="" -->featBCD</em>&nbsp;</td><td>
<p>Binary corder detector. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a8a50f7cac59b399dec959c764bcedd62"></a><!-- doxytag: member="featSIFT" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a8a50f7cac59b399dec959c764bcedd62" args="" -->featSIFT</em>&nbsp;</td><td>
<p>Scale Invariant Feature Transform [LOWE'04]. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a0928aa6d11142c924e2f2e60598559d5"></a><!-- doxytag: member="featSURF" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a0928aa6d11142c924e2f2e60598559d5" args="" -->featSURF</em>&nbsp;</td><td>
<p>Speeded Up Robust Feature [BAY'06]. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a40951a6fbc35e0b47a5883f70dd09e0c"></a><!-- doxytag: member="featBeacon" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a40951a6fbc35e0b47a5883f70dd09e0c" args="" -->featBeacon</em>&nbsp;</td><td>
<p>A especial case: this is not an image feature, but a 2D/3D beacon (used for range-only SLAM from <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html" title="The class for storing &quot;landmarks&quot; (visual or laser-scan-extracted features,...)">mrpt::slam::CLandmark</a>) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a809c126ef20588226acd0893fa7a6ed5"></a><!-- doxytag: member="featFAST" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a809c126ef20588226acd0893fa7a6ed5" args="" -->featFAST</em>&nbsp;</td><td>
<p>FAST feature detector, OpenCV's implementation ("Faster and better: A machine learning approach to corner detection", E. Rosten, R. Porter and T. Drummond, PAMI, 2009). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19aa7ab4f83542ee3a069cb05a25af0984c"></a><!-- doxytag: member="featFASTER9" ref="gga3a5b54ab814bafc8bb108e37bbee4e19aa7ab4f83542ee3a069cb05a25af0984c" args="" -->featFASTER9</em>&nbsp;</td><td>
<p>FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19a8dd8e13c6510ea136028e6338f795006"></a><!-- doxytag: member="featFASTER10" ref="gga3a5b54ab814bafc8bb108e37bbee4e19a8dd8e13c6510ea136028e6338f795006" args="" -->featFASTER10</em>&nbsp;</td><td>
<p>FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3a5b54ab814bafc8bb108e37bbee4e19aa630e1c730c034cecffc4d11f7337c71"></a><!-- doxytag: member="featFASTER12" ref="gga3a5b54ab814bafc8bb108e37bbee4e19aa630e1c730c034cecffc4d11f7337c71" args="" -->featFASTER12</em>&nbsp;</td><td>
<p>FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html#l00065">65</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2types_8h_source.html">vision/include/mrpt/vision/types.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaa6de04e12e3fad427c0e10ab6f770bcf"></a><!-- doxytag: member="mrpt::vision::addFeaturesToImage" ref="gaa6de04e12e3fad427c0e10ab6f770bcf" args="(const CImage &amp;inImg, const CFeatureList &amp;theList, CImage &amp;outImg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::addFeaturesToImage </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">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>theList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>outImg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draw rectangles around each of the features on a copy of the input image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inImg</td><td>[IN] The input image where to draw the features. </td></tr>
    <tr><td class="paramname">theList</td><td>[IN] The list of features. </td></tr>
    <tr><td class="paramname">outImg</td><td>[OUT] The copy of the input image with the marked features. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga75f4e50fe891900c856f3d4c39ca805b"></a><!-- doxytag: member="mrpt::vision::buildIntrinsicParamsMatrix" ref="ga75f4e50fe891900c856f3d4c39ca805b" args="(const double focalLengthX, const double focalLengthY, const double centerX, const double centerY)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> VISION_IMPEXP mrpt::vision::buildIntrinsicParamsMatrix </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>focalLengthX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>focalLengthY</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>centerX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>centerY</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Builds the intrinsic parameters matrix A from parameters: </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">focalLengthX</td><td>[IN] The focal length, in X (horizontal) pixels </td></tr>
    <tr><td class="paramname">focalLengthY</td><td>[IN] The focal length, in Y (vertical) pixels </td></tr>
    <tr><td class="paramname">centerX</td><td>[IN] The image center, horizontal, in pixels </td></tr>
    <tr><td class="paramname">centerY</td><td>[IN] The image center, vertical, in pixels</td></tr>
  </table>
  </dd>
</dl>
<p><br/>
This method returns the matrix: </p>
<table class="doxtable">
<tr>
<td>f_x</td><td>0</td><td>cX  </td></tr>
<tr>
<td>0</td><td>f_y</td><td>cY  </td></tr>
<tr>
<td>0</td><td>0</td><td>1  </td></tr>
</table>
<p>See also the tutorial discussing the camera model parameters. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga6854cf65e2102db34841099588c4e107" title="Returns the stored, default intrinsic params matrix for a given camera:">defaultIntrinsicParamsMatrix</a>, <a class="el" href="group__mrpt__vision__grp.html#gae1bdfa0784cd25618e11bc8baedb81fd" title="Extract a UNITARY 3D vector in the direction of a 3D point, given from its (x,y) pixels coordinates...">pixelTo3D</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga97bf65f8894c31cb7b199c3e0c631404"></a><!-- doxytag: member="mrpt::vision::cloudsToMatchedList" ref="ga97bf65f8894c31cb7b199c3e0c631404" args="(const CObservationVisualLandmarks &amp;cloud1, const CObservationVisualLandmarks &amp;cloud2, TMatchingPairList &amp;outList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::cloudsToMatchedList </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;&#160;</td>
          <td class="paramname"><em>cloud1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;&#160;</td>
          <td class="paramname"><em>cloud2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>outList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Transform two clouds of 3D points into a matched list of points ... </p>

</div>
</div>
<a class="anchor" id="ga8bb4c04a6114aa09b09eb2fa7a66e131"></a><!-- doxytag: member="mrpt::vision::computeMainOrientation" ref="ga8bb4c04a6114aa09b09eb2fa7a66e131" args="(const CImage &amp;image, unsigned int x, unsigned int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float VISION_IMPEXP mrpt::vision::computeMainOrientation </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>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the main orientation of a set of points with an image (for using in SIFT-based algorithms) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>[IN] The input image. </td></tr>
    <tr><td class="paramname">x</td><td>[IN] A vector containing the 'x' coordinates of the image points. </td></tr>
    <tr><td class="paramname">y</td><td>[IN] A vector containing the 'y' coordinates of the image points. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The main orientation of the image point. </dd></dl>

</div>
</div>
<a class="anchor" id="gae9ba8ad3c1fea073285a3a910e4dc153"></a><!-- doxytag: member="mrpt::vision::computeMsd" ref="gae9ba8ad3c1fea073285a3a910e4dc153" args="(const TMatchingPairList &amp;list, const poses::CPose3D &amp;Rt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double VISION_IMPEXP mrpt::vision::computeMsd </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const poses::CPose3D &amp;&#160;</td>
          <td class="paramname"><em>Rt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the mean squared distance between a set of 3D correspondences ... </p>

</div>
</div>
<a class="anchor" id="ga91460061069d5c5223ca96e997f0023a"></a><!-- doxytag: member="mrpt::vision::computeSAD" ref="ga91460061069d5c5223ca96e997f0023a" args="(const CImage &amp;patch1, const CImage &amp;patch2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double VISION_IMPEXP mrpt::vision::computeSAD </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>patch1</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>patch2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculates the Sum of Absolutes Differences (range [0,1]) between two patches. </p>
<p>Both patches must have the same size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">patch1</td><td>[IN] One patch. </td></tr>
    <tr><td class="paramname">patch2</td><td>[IN] The other patch. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value of computed SAD normalized to [0,1] </dd></dl>

</div>
</div>
<a class="anchor" id="ga13bd323aaefe18e181cad689468a113f"></a><!-- doxytag: member="mrpt::vision::computeStereoRectificationMaps" ref="ga13bd323aaefe18e181cad689468a113f" args="(const TCamera &amp;cam1, const TCamera &amp;cam2, const poses::CPose3D &amp;rightCameraPose, void *outMap1x, void *outMap1y, void *outMap2x, void *outMap2y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::computeStereoRectificationMaps </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cam1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cam2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const poses::CPose3D &amp;&#160;</td>
          <td class="paramname"><em>rightCameraPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>outMap1x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>outMap1y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>outMap2x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>outMap2y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes a pair of x-and-y maps for stereo rectification from a pair of cameras and the relative pose of the second one wrt the first one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cam1,cam2</td><td>[IN] The pair of involved cameras </td></tr>
    <tr><td class="paramname">rightCameraPose</td><td>[IN] The change in pose of the second camera wrt the first one </td></tr>
    <tr><td class="paramname">outMap1x,outMap1y</td><td>[OUT] The x-and-y maps corresponding to cam1 (should be converted to *cv::Mat) </td></tr>
    <tr><td class="paramname">outMap2x,outMap2y</td><td>[OUT] The x-and-y maps corresponding to cam2 (should be converted to *cv::Mat) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga34408636ab4c6a218c6da6bd9bb51143"></a><!-- doxytag: member="mrpt::vision::correctDistortion" ref="ga34408636ab4c6a218c6da6bd9bb51143" args="(const CImage &amp;in_img, CImage &amp;out_img, const CMatrixDouble33 &amp;A, const vector_double &amp;dist_coeffs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::correctDistortion </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_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector_double &amp;&#160;</td>
          <td class="paramname"><em>dist_coeffs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a new image where distortion has been removed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>The 3x3 intrinsic parameters matrix </td></tr>
    <tr><td class="paramname">dist_coeffs</td><td>The 1x4 (or 1x5) vector of distortion coefficients </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="vision_2include_2mrpt_2vision_2utils_8h_source.html#l00209">209</a> of file <a class="el" href="vision_2include_2mrpt_2vision_2utils_8h_source.html">vision/include/mrpt/vision/utils.h</a>.</p>

<p>References <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a543afd4be92f7c35ebe58c664ab82452">mrpt::utils::CImage::rectifyImage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6854cf65e2102db34841099588c4e107"></a><!-- doxytag: member="mrpt::vision::defaultIntrinsicParamsMatrix" ref="ga6854cf65e2102db34841099588c4e107" args="(unsigned int camIndex=0, unsigned int resolutionX=320, unsigned int resolutionY=240)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> VISION_IMPEXP mrpt::vision::defaultIntrinsicParamsMatrix </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>camIndex</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>resolutionX</em> = <code>320</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>resolutionY</em> = <code>240</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the stored, default intrinsic params matrix for a given camera: </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">camIndex</td><td>[IN] Posible values are listed next. </td></tr>
    <tr><td class="paramname">resolutionX</td><td>[IN] The number of pixel columns </td></tr>
    <tr><td class="paramname">resolutionY</td><td>[IN] The number of pixel rows</td></tr>
  </table>
  </dd>
</dl>
<p>The matrix is generated for the indicated camera resolution configuration. The following table summarizes the current supported cameras and the values as ratios of the corresponding horz. or vert. resolution:<br/>
</p>
<center><table class="doxtable">
<tr>
<td><center><b>camIndex</b></center> </td><td><center><b>Manufacturer</b></center> </td><td><center><b>Camera model</b></center> </td><td><center><b>fx</b></center> </td><td><center><b>fy</b></center> </td><td><center><b>cx</b></center> </td><td><center><b>cy</b></center> <p class="endtd"></p>
</td></tr>
<tr>
<td><center>0</center> </td><td><center>Point Grey Research</center> </td><td><center>Bumblebee</center> </td><td><center>0.79345</center> </td><td><center>1.05793</center> </td><td><center>0.55662</center> </td><td><center>0.52692</center> <p class="endtd"></p>
</td></tr>
<tr>
<td><center>1</center> </td><td><center>Sony</center> </td><td><center>???</center> </td><td><center>0.95666094</center> </td><td><center>1.3983423f</center> </td><td><center>0.54626328f</center> </td><td><center>0.4939191f</center>  </td></tr>
</table>
</center><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga75f4e50fe891900c856f3d4c39ca805b" title="Builds the intrinsic parameters matrix A from parameters:">buildIntrinsicParamsMatrix</a>, <a class="el" href="group__mrpt__vision__grp.html#gae1bdfa0784cd25618e11bc8baedb81fd" title="Extract a UNITARY 3D vector in the direction of a 3D point, given from its (x,y) pixels coordinates...">pixelTo3D</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga283472c90efde179b76bba7f278da263"></a><!-- doxytag: member="mrpt::vision::deleteRepeatedFeats" ref="ga283472c90efde179b76bba7f278da263" args="(CFeatureList &amp;list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::deleteRepeatedFeats </td>
          <td>(</td>
          <td class="paramtype">CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Explore the feature list and removes features which are in the same coordinates. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>[IN] The list of features. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga53129d1715497d147744fc65b74dd339"></a><!-- doxytag: member="mrpt::vision::flip" ref="ga53129d1715497d147744fc65b74dd339" args="(CImage &amp;img)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::flip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Invert an image using OpenCV function. </p>

</div>
</div>
<a class="anchor" id="ga1d6950fc414d2b15fb0ecb349a84098a"></a><!-- doxytag: member="mrpt::vision::generateMask" ref="ga1d6950fc414d2b15fb0ecb349a84098a" args="(const CMatchedFeatureList &amp;mList, CMatrixBool &amp;mask1, CMatrixBool &amp;mask2, int wSize=10)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::generateMask </td>
          <td>(</td>
          <td class="paramtype">const CMatchedFeatureList &amp;&#160;</td>
          <td class="paramname"><em>mList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &amp;&#160;</td>
          <td class="paramname"><em>mask1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &amp;&#160;</td>
          <td class="paramname"><em>mask2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>wSize</em> = <code>10</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculates the Sum of Absolutes Differences (range [0,1]) between two patches. </p>
<p>Both patches must have the same size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">mList</td><td>[IN] The list of matched features. </td></tr>
    <tr><td class="paramname">mask1</td><td>[OUT] The output mask for left features. </td></tr>
    <tr><td class="paramname">mask2</td><td>[OUT] The output mask for right features. </td></tr>
    <tr><td class="paramname">wSize</td><td>[IN] The value of the masking window for each features. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">if</td><td><a class="el" href="namespacemrpt_1_1math.html#a632ae0aecf78103f87f18f9ac33f7170">mList.size()</a> = 0 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga537c61afa2d0ef023376d933ba0c50fa"></a><!-- doxytag: member="mrpt::vision::getDispersion" ref="ga537c61afa2d0ef023376d933ba0c50fa" args="(const CFeatureList &amp;list, vector_float &amp;std, vector_float &amp;mean)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::getDispersion </td>
          <td>(</td>
          <td class="paramtype">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vector_float &amp;&#160;</td>
          <td class="paramname"><em>std</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vector_float &amp;&#160;</td>
          <td class="paramname"><em>mean</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the dispersion of the features in the image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>[IN] Input list of features </td></tr>
    <tr><td class="paramname">std</td><td>[OUT] 2 element vector containing the standard deviations in the 'x' and 'y' coordinates. </td></tr>
    <tr><td class="paramname">mean</td><td>[OUT] 2 element vector containing the mean in the 'x' and 'y' coordinates. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad073bd2b1235df6a75e73a72df701204"></a><!-- doxytag: member="mrpt::vision::matchFeatures" ref="gad073bd2b1235df6a75e73a72df701204" args="(const CFeatureList &amp;list1, const CFeatureList &amp;list2, CMatchedFeatureList &amp;matches, const TMatchingOptions &amp;options=TMatchingOptions(), const TStereoSystemParams &amp;params=TStereoSystemParams())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t VISION_IMPEXP mrpt::vision::matchFeatures </td>
          <td>(</td>
          <td class="paramtype">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>list1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>list2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CMatchedFeatureList &amp;&#160;</td>
          <td class="paramname"><em>matches</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TMatchingOptions &amp;&#160;</td>
          <td class="paramname"><em>options</em> = <code>TMatchingOptions()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TStereoSystemParams &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the matches between two lists of features which must be of the same type. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list1</td><td>[IN] One list. </td></tr>
    <tr><td class="paramname">list2</td><td>[IN] Other list. </td></tr>
    <tr><td class="paramname">matches</td><td>[OUT] A vector of pairs of correspondences. </td></tr>
    <tr><td class="paramname">options</td><td>[IN] A struct containing matching options </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the number of matched pairs of features. </dd></dl>

</div>
</div>
<a class="anchor" id="ga78b70d757600704d6cd9a3ca37b838e8"></a><!-- doxytag: member="mrpt::vision::normalizeImage" ref="ga78b70d757600704d6cd9a3ca37b838e8" args="(const CImage &amp;image, CImage &amp;nimage)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::normalizeImage </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>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>nimage</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Normalizes the brigthness and contrast of an image by setting its mean value to zero and its standard deviation to unit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>[IN] The input image. </td></tr>
    <tr><td class="paramname">nimage</td><td>[OUTPUT] The new normalized image. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga76734611e12d95e2d1f825d0a8d7b2c9"></a><!-- doxytag: member="mrpt::vision::openCV_cross_correlation" ref="ga76734611e12d95e2d1f825d0a8d7b2c9" args="(const CImage &amp;img, const CImage &amp;patch_img, size_t &amp;x_max, size_t &amp;y_max, double &amp;max_val, int x_search_ini=&#45;1, int y_search_ini=&#45;1, int x_search_size=&#45;1, int y_search_size=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::openCV_cross_correlation </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_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>patch_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>x_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>y_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>max_val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x_search_size</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y_search_size</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate This implementation reduced computation time. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>[IN] The imput image. This function supports gray-scale (1 channel only) images. </td></tr>
    <tr><td class="paramname">patch_img</td><td>[IN] The "patch" image, which must be equal, or smaller than "this" image. This function supports gray-scale (1 channel only) images. </td></tr>
    <tr><td class="paramname">x_max</td><td>[OUT] The x coordinate where it was found the maximun cross correlation value. </td></tr>
    <tr><td class="paramname">y_max</td><td>[OUT] The y coordinate where it was found the maximun cross correlation value. </td></tr>
    <tr><td class="paramname">max_val</td><td>[OUT] The maximun value of cross correlation which we can find </td></tr>
    <tr><td class="paramname">x_search_ini</td><td>[IN] The "x" coordinate of the search window. </td></tr>
    <tr><td class="paramname">y_search_ini</td><td>[IN] The "y" coordinate of the search window. </td></tr>
    <tr><td class="paramname">x_search_size</td><td>[IN] The width of the search window. </td></tr>
    <tr><td class="paramname">y_search_size</td><td>[IN] The height of the search window. Note: By default, the search area is the whole (this) image. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>cross_correlation </dd></dl>

</div>
</div>
<a class="anchor" id="gae1bdfa0784cd25618e11bc8baedb81fd"></a><!-- doxytag: member="mrpt::vision::pixelTo3D" ref="gae1bdfa0784cd25618e11bc8baedb81fd" args="(const TPixelCoordf &amp;xy, const CMatrixDouble33 &amp;A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> VISION_IMPEXP mrpt::vision::pixelTo3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>xy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>A</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract a UNITARY 3D vector in the direction of a 3D point, given from its (x,y) pixels coordinates, and the camera intrinsic coordinates. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xy</td><td>[IN] Pixels coordinates, from the top-left corner of the image. </td></tr>
    <tr><td class="paramname">A</td><td>[IN] The 3x3 intrinsic parameters matrix for the camera. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The TPoint3D containing the output unitary vector. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga75f4e50fe891900c856f3d4c39ca805b" title="Builds the intrinsic parameters matrix A from parameters:">buildIntrinsicParamsMatrix</a>, <a class="el" href="group__mrpt__vision__grp.html#ga6854cf65e2102db34841099588c4e107" title="Returns the stored, default intrinsic params matrix for a given camera:">defaultIntrinsicParamsMatrix</a>, TPixelCoordf </dd></dl>

</div>
</div>
<a class="anchor" id="ga30399c3913ad2700d9097dfdffd75cc8"></a><!-- doxytag: member="mrpt::vision::projectMatchedFeature" ref="ga30399c3913ad2700d9097dfdffd75cc8" args="(const CFeaturePtr &amp;leftFeat, const CFeaturePtr &amp;rightFeat, TPoint3D &amp;p3D, const TStereoSystemParams &amp;params=TStereoSystemParams())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::projectMatchedFeature </td>
          <td>(</td>
          <td class="paramtype">const CFeaturePtr &amp;&#160;</td>
          <td class="paramname"><em>leftFeat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CFeaturePtr &amp;&#160;</td>
          <td class="paramname"><em>rightFeat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TStereoSystemParams &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the 3D position of a particular matched feature. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">leftList</td><td>[IN] The left feature. </td></tr>
    <tr><td class="paramname">rightList</td><td>[IN] The right feature. </td></tr>
    <tr><td class="paramname">vP3D</td><td>[OUT] The 3D position of the projected point. </td></tr>
    <tr><td class="paramname">params</td><td>[IN] The intrinsic and extrinsic parameters of the stereo pair. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad219474cf31289ceec53218a2accc73e"></a><!-- doxytag: member="mrpt::vision::projectMatchedFeatures" ref="gad219474cf31289ceec53218a2accc73e" args="(const CFeatureList &amp;leftList, const CFeatureList &amp;rightList, vector&lt; TPoint3D &gt; &amp;vP3D, const TStereoSystemParams &amp;params=TStereoSystemParams())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::projectMatchedFeatures </td>
          <td>(</td>
          <td class="paramtype">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>leftList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>rightList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vector&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vP3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TStereoSystemParams &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the 3D position of a set of matched features from their coordinates in the images. </p>
<p>The list have to be matched in order, e.g. leftList[0]&lt;-&gt;rightList[0] </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">leftList</td><td>[IN] The left list of features. </td></tr>
    <tr><td class="paramname">rightList</td><td>[IN] The right list of features. </td></tr>
    <tr><td class="paramname">vP3D</td><td>[OUT] A vector of TPoint3D containing the 3D positions of the projected points. </td></tr>
    <tr><td class="paramname">params</td><td>[IN] The intrinsic and extrinsic parameters of the stereo pair. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa842d7fb358a77d51ebb78d871de9088"></a><!-- doxytag: member="mrpt::vision::projectMatchedFeatures" ref="gaa842d7fb358a77d51ebb78d871de9088" args="(CMatchedFeatureList &amp;mfList, const TStereoSystemParams &amp;param, CLandmarksMap &amp;landmarks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::projectMatchedFeatures </td>
          <td>(</td>
          <td class="paramtype">CMatchedFeatureList &amp;&#160;</td>
          <td class="paramname"><em>mfList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TStereoSystemParams &amp;&#160;</td>
          <td class="paramname"><em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;&#160;</td>
          <td class="paramname"><em>landmarks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project a list of matched features into the 3D space, using the provided parameters of the stereo system. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">mfList</td><td>[IN/OUT] The list of matched features. Features which yields a 3D point outside the area defined in <a class="el" href="structmrpt_1_1vision_1_1_t_stereo_system_params.html" title="Parameters associated to a stereo system.">TStereoSystemParams</a> are removed from the lists. </td></tr>
    <tr><td class="paramname">param</td><td>[IN] The parameters of the stereo system. </td></tr>
    <tr><td class="paramname">landmarks</td><td>[OUT] A map containing the projected landmarks. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structmrpt_1_1vision_1_1_t_stereo_system_params.html" title="Parameters associated to a stereo system.">TStereoSystemParams</a>, CLandmarksMap </dd></dl>

</div>
</div>
<a class="anchor" id="ga887ad9b3e2329ffc707e888f1977499d"></a><!-- doxytag: member="mrpt::vision::projectMatchedFeatures" ref="ga887ad9b3e2329ffc707e888f1977499d" args="(CFeatureList &amp;leftList, CFeatureList &amp;rightList, const TStereoSystemParams &amp;param, CLandmarksMap &amp;landmarks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::projectMatchedFeatures </td>
          <td>(</td>
          <td class="paramtype">CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>leftList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>rightList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TStereoSystemParams &amp;&#160;</td>
          <td class="paramname"><em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;&#160;</td>
          <td class="paramname"><em>landmarks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project a pair of feature lists into the 3D space, using the provided options for the stereo system. </p>
<p>The matches must be in order, i.e. leftList[0] corresponds to rightList[0] and so on. Features which yields a 3D point outside the area defined in <a class="el" href="structmrpt_1_1vision_1_1_t_stereo_system_params.html" title="Parameters associated to a stereo system.">TStereoSystemParams</a> are removed from the lists. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">leftList</td><td>[IN/OUT] The left list of matched features. </td></tr>
    <tr><td class="paramname">rightList</td><td>[IN/OUT] The right list of matched features. </td></tr>
    <tr><td class="paramname">param</td><td>[IN] The options of the stereo system. </td></tr>
    <tr><td class="paramname">landmarks</td><td>(OUT] A map containing the projected landmarks. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structmrpt_1_1vision_1_1_t_stereo_system_params.html" title="Parameters associated to a stereo system.">TStereoSystemParams</a>, CLandmarksMap </dd></dl>

</div>
</div>
<a class="anchor" id="ga0f1462e4b01333122fadc40c409f55c5"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoint_no_distortion" ref="ga0f1462e4b01333122fadc40c409f55c5" args="(const mrpt::utils::TCamera &amp;cam_params, const mrpt::poses::CPose3D &amp;F, const mrpt::math::TPoint3D &amp;P)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool INVERSE_CAM_POSE&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">TPixelCoordf mrpt::vision::pinhole::projectPoint_no_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cam_params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>P</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project a single 3D point with global coordinates P into a camera at pose F, without distortion parameters. </p>
<p>The template argument INVERSE_CAM_POSE is related on how the camera pose "F" is stored:</p>
<ul>
<li>INVERSE_CAM_POSE:false -&gt; The local coordinates of the feature wrt the camera F are: <img class="formulaInl" alt="$ P \ominus F $" src="form_126.png"/></li>
<li>INVERSE_CAM_POSE:true -&gt; The local coordinates of the feature wrt the camera F are: <img class="formulaInl" alt="$ F \oplus P $" src="form_127.png"/> </li>
</ul>

<p>Definition at line <a class="el" href="pinhole_8h_source.html#l00072">72</a> of file <a class="el" href="pinhole_8h_source.html">pinhole.h</a>.</p>

<p>References <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#aaabe44aa147e5391009051b49a6d524e">mrpt::poses::CPose3D::composePoint()</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00293">mrpt::math::TPoint3D::x</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00294">mrpt::math::TPoint3D::y</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00295">mrpt::math::TPoint3D::z</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#ab74dd377deb846d06d5bf91bc6d9682b">mrpt::poses::CPose3D::inverseComposePoint()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, <a class="el" href="_t_camera_8h_source.html#l00177">mrpt::utils::TCamera::cx()</a>, <a class="el" href="_t_camera_8h_source.html#l00181">mrpt::utils::TCamera::fx()</a>, <a class="el" href="_t_camera_8h_source.html#l00179">mrpt::utils::TCamera::cy()</a>, and <a class="el" href="_t_camera_8h_source.html#l00183">mrpt::utils::TCamera::fy()</a>.</p>

</div>
</div>
<a class="anchor" id="gadb0682ae91a2314b362985c7895dec73"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoint_no_distortion" ref="gadb0682ae91a2314b362985c7895dec73" args="(const POINT &amp;in_point_wrt_cam, const mrpt::utils::TCamera &amp;cam_params, TPixelCoordf &amp;out_projectedPoints)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename POINT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::pinhole::projectPoint_no_distortion </td>
          <td>(</td>
          <td class="paramtype">const POINT &amp;&#160;</td>
          <td class="paramname"><em>in_point_wrt_cam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cam_params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TPixelCoordf &amp;&#160;</td>
          <td class="paramname"><em>out_projectedPoints</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</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>

<p>Definition at line <a class="el" href="pinhole_8h_source.html#l00091">91</a> of file <a class="el" href="pinhole_8h_source.html">pinhole.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, <a class="el" href="_t_pixel_coord_8h_source.html#l00042">mrpt::utils::TPixelCoordf::x</a>, <a class="el" href="_t_camera_8h_source.html#l00177">mrpt::utils::TCamera::cx()</a>, <a class="el" href="_t_camera_8h_source.html#l00181">mrpt::utils::TCamera::fx()</a>, <a class="el" href="_t_pixel_coord_8h_source.html#l00042">mrpt::utils::TPixelCoordf::y</a>, <a class="el" href="_t_camera_8h_source.html#l00179">mrpt::utils::TCamera::cy()</a>, and <a class="el" href="_t_camera_8h_source.html#l00183">mrpt::utils::TCamera::fy()</a>.</p>

</div>
</div>
<a class="anchor" id="ga78a4d3f2289990a057df57b20402bfcb"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoint_with_distortion" ref="ga78a4d3f2289990a057df57b20402bfcb" args="(const mrpt::math::TPoint3D &amp;in_point_wrt_cam, const mrpt::utils::TCamera &amp;in_cam_params, TPixelCoordf &amp;out_projectedPoints, bool accept_points_behind=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::projectPoint_with_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>in_point_wrt_cam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>in_cam_params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TPixelCoordf &amp;&#160;</td>
          <td class="paramname"><em>out_projectedPoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>accept_points_behind</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project one 3D point into a camera using its calibration matrix and distortion parameters (radial and tangential distortions projection model) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_point_wrt_cam</td><td>[IN] The 3D point wrt the camera focus, with +Z=optical axis, +X=righthand in the image plane, +Y=downward in the image plane. </td></tr>
    <tr><td class="paramname">in_cam_params</td><td>[IN] The camera parameters. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
    <tr><td class="paramname">out_projectedPoints</td><td>[OUT] The projected point, in pixel units. </td></tr>
    <tr><td class="paramname">accept_points_behind</td><td>[IN] See the note below.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Points "behind" the camera (which couldn't be physically seen in the real world) are marked with pixel coordinates (-1,-1) to detect them as invalid, unless accept_points_behind is true. In that case they'll be projected normally.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga143e30403c5697c2a106c17b75b3daf8" title="Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix and dis...">projectPoints_with_distortion</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga948d8f70569109fa280c908b84cd3987"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoints_no_distortion" ref="ga948d8f70569109fa280c908b84cd3987" args="(const std::vector&lt; mrpt::poses::CPoint3D &gt; &amp;in_points_3D, const mrpt::poses::CPose3D &amp;cameraPose, const mrpt::math::CMatrixDouble33 &amp;intrinsicParams, std::vector&lt; TPixelCoordf &gt; &amp;projectedPoints, bool accept_points_behind=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::projectPoints_no_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>in_points_3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>intrinsicParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>projectedPoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>accept_points_behind</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix (undistorted projection model) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_points_3D</td><td>[IN] The list of 3D points in world coordinates (meters) to project. </td></tr>
    <tr><td class="paramname">cameraPose</td><td>[IN] The pose of the camera in the world. </td></tr>
    <tr><td class="paramname">intrinsicParams</td><td>[IN] The 3x3 calibration matrix. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
    <tr><td class="paramname">projectedPoints</td><td>[OUT] The list of image coordinates (in pixels) for the projected points. At output this list is resized to the same number of input points. </td></tr>
    <tr><td class="paramname">accept_points_behind</td><td>[IN] See the note below.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Points "behind" the camera (which couldn't be physically seen in the real world) are marked with pixel coordinates (-1,-1) to detect them as invalid, unless accept_points_behind is true. In that case they'll be projected normally.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga143e30403c5697c2a106c17b75b3daf8" title="Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix and dis...">projectPoints_with_distortion</a>, <a class="el" href="group__mrpt__vision__grp.html#ga0f1462e4b01333122fadc40c409f55c5" title="Project a single 3D point with global coordinates P into a camera at pose F, without distortion param...">projectPoint_no_distortion</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga143e30403c5697c2a106c17b75b3daf8"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoints_with_distortion" ref="ga143e30403c5697c2a106c17b75b3daf8" args="(const std::vector&lt; mrpt::poses::CPoint3D &gt; &amp;in_points_3D, const mrpt::poses::CPose3D &amp;cameraPose, const mrpt::math::CMatrixDouble33 &amp;intrinsicParams, const std::vector&lt; double &gt; &amp;distortionParams, std::vector&lt; TPixelCoordf &gt; &amp;projectedPoints, bool accept_points_behind=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::projectPoints_with_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>in_points_3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>intrinsicParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>distortionParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>projectedPoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>accept_points_behind</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix and distortion parameters (radial and tangential distortions projection model) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_points_3D</td><td>[IN] The list of 3D points in world coordinates (meters) to project. </td></tr>
    <tr><td class="paramname">cameraPose</td><td>[IN] The pose of the camera in the world. </td></tr>
    <tr><td class="paramname">intrinsicParams</td><td>[IN] The 3x3 calibration matrix. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
    <tr><td class="paramname">distortionParams</td><td>[IN] The 4-length vector with the distortion parameters [k1 k2 p1 p2]. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
    <tr><td class="paramname">projectedPoints</td><td>[OUT] The list of image coordinates (in pixels) for the projected points. At output this list is resized to the same number of input points. </td></tr>
    <tr><td class="paramname">accept_points_behind</td><td>[IN] See the note below.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Points "behind" the camera (which couldn't be physically seen in the real world) are marked with pixel coordinates (-1,-1) to detect them as invalid, unless accept_points_behind is true. In that case they'll be projected normally.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga78a4d3f2289990a057df57b20402bfcb" title="Project one 3D point into a camera using its calibration matrix and distortion parameters (radial and...">projectPoint_with_distortion</a>, <a class="el" href="group__mrpt__vision__grp.html#ga948d8f70569109fa280c908b84cd3987" title="Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix (undist...">projectPoints_no_distortion</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gad2c793bc2a3c1552e3084228f90171e7"></a><!-- doxytag: member="mrpt::vision::pinhole::projectPoints_with_distortion" ref="gad2c793bc2a3c1552e3084228f90171e7" args="(const std::vector&lt; mrpt::math::TPoint3D &gt; &amp;P, const mrpt::utils::TCamera &amp;params, const CPose3DQuat &amp;cameraPose, std::vector&lt; TPixelCoordf &gt; &amp;pixels, bool accept_points_behind=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::projectPoints_with_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CPose3DQuat &amp;&#160;</td>
          <td class="paramname"><em>cameraPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>pixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>accept_points_behind</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="gadbb7002c4a2e832ff309c1eefad818ea"></a><!-- doxytag: member="mrpt::vision::rowChecking" ref="gadbb7002c4a2e832ff309c1eefad818ea" args="(CFeatureList &amp;leftList, CFeatureList &amp;rightList, float threshold=1.0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::rowChecking </td>
          <td>(</td>
          <td class="paramtype">CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>leftList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CFeatureList &amp;&#160;</td>
          <td class="paramname"><em>rightList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Search for correspondences which are not in the same row and deletes them. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">leftList</td><td>[IN/OUT] The left list of matched features. </td></tr>
    <tr><td class="paramname">rightList</td><td>[IN/OUT] The right list of matched features. </td></tr>
    <tr><td class="paramname">threshold</td><td>[IN] The tolerance value for the row checking: valid matched are within this threshold. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae2f5e513a60be2eae856a942a7d1c4c7"></a><!-- doxytag: member="mrpt::vision::StereoObs2BRObs" ref="gae2f5e513a60be2eae856a942a7d1c4c7" args="(const CObservationStereoImages &amp;inObs, const vector&lt; double &gt; &amp;sg, CObservationBearingRange &amp;outObs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::StereoObs2BRObs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html">CObservationStereoImages</a> &amp;&#160;</td>
          <td class="paramname"><em>inObs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>sg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;&#160;</td>
          <td class="paramname"><em>outObs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a stereo images observation into a bearing and range observation. </p>
<p>Converts a CObservationVisualLandmarks into a bearing and range observation (without any covariances).</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inObs</td><td>[IN] The input stereo images observation. </td></tr>
    <tr><td class="paramname">sg</td><td>[IN] The sigma of the row, col, and disparity variables involved in the feature detection. </td></tr>
    <tr><td class="paramname">outObs</td><td>[OUT] The output bearing and range observation (including covariances).</td></tr>
  </table>
  </dd>
</dl>
<p>Fields of view are not computed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inObs</td><td>[IN] The input observation. </td></tr>
    <tr><td class="paramname">sg</td><td>[IN] The sigma of the row, col, and disparity variables involved in the feature detection. </td></tr>
    <tr><td class="paramname">outObs</td><td>[OUT] The output bearing and range observation. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gabd4f827a4fc656d2bf8a17fbba7d85a8"></a><!-- doxytag: member="mrpt::vision::StereoObs2BRObs" ref="gabd4f827a4fc656d2bf8a17fbba7d85a8" args="(const CMatchedFeatureList &amp;inMatches, const CMatrixDouble33 &amp;intrinsicParams, const double &amp;baseline, const CPose3D &amp;sensorPose, const vector&lt; double &gt; &amp;sg, CObservationBearingRange &amp;outObs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::StereoObs2BRObs </td>
          <td>(</td>
          <td class="paramtype">const CMatchedFeatureList &amp;&#160;</td>
          <td class="paramname"><em>inMatches</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>intrinsicParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>baseline</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CPose3D &amp;&#160;</td>
          <td class="paramname"><em>sensorPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>sg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;&#160;</td>
          <td class="paramname"><em>outObs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a matched feature list into a bearing and range observation (some of the stereo camera system must be provided). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inMatches</td><td>[IN] The input list of matched features. </td></tr>
    <tr><td class="paramname">intrinsicParams</td><td>[IN] The intrisic params of the reference (left) camera of the stereo system. </td></tr>
    <tr><td class="paramname">baseline</td><td>[IN] The distance among the X axis of the right camera wrt the reference (left) camera. </td></tr>
    <tr><td class="paramname">sg</td><td>[IN] The sigma of the row, col, and disparity variables involved in the feature detection. </td></tr>
    <tr><td class="paramname">outObs</td><td>[OUT] The output bearing and range observation (including covariances). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae387faf9d64551d68f067cf506cacf3a"></a><!-- doxytag: member="mrpt::vision::StereoObs2BRObs" ref="gae387faf9d64551d68f067cf506cacf3a" args="(const CObservationVisualLandmarks &amp;inObs, CObservationBearingRange &amp;outObs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::StereoObs2BRObs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &amp;&#160;</td>
          <td class="paramname"><em>inObs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;&#160;</td>
          <td class="paramname"><em>outObs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a CObservationVisualLandmarks into a bearing and range observation (without any covariances). </p>
<p>Fields of view are not computed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inObs</td><td>[IN] The input observation. </td></tr>
    <tr><td class="paramname">outObs</td><td>[OUT] The output bearing and range observation. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaec6f784e2f55e5476d108ace5182ef5f"></a><!-- doxytag: member="mrpt::vision::pinhole::undistort_point" ref="gaec6f784e2f55e5476d108ace5182ef5f" args="(const TPixelCoordf &amp;inPt, TPixelCoordf &amp;outPt, const mrpt::utils::TCamera &amp;cameraModel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::undistort_point </td>
          <td>(</td>
          <td class="paramtype">const TPixelCoordf &amp;&#160;</td>
          <td class="paramname"><em>inPt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TPixelCoordf &amp;&#160;</td>
          <td class="paramname"><em>outPt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraModel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Undistort one point given by its pixel coordinates and the camera parameters. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga36442f7cec4a377cee9d180afc0b3ac6" title="Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortio...">undistort_points</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga36442f7cec4a377cee9d180afc0b3ac6"></a><!-- doxytag: member="mrpt::vision::pinhole::undistort_points" ref="ga36442f7cec4a377cee9d180afc0b3ac6" args="(const std::vector&lt; TPixelCoordf &gt; &amp;srcDistortedPixels, std::vector&lt; TPixelCoordf &gt; &amp;dstUndistortedPixels, const mrpt::math::CMatrixDouble33 &amp;intrinsicParams, const std::vector&lt; double &gt; &amp;distortionParams)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::undistort_points </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>srcDistortedPixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>dstUndistortedPixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>intrinsicParams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>distortionParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortion coefficients. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">srcDistortedPixels</td><td>[IN] The pixel coordinates as in the distorted image. </td></tr>
    <tr><td class="paramname">dstUndistortedPixels</td><td>[OUT] The computed pixel coordinates without distortion. </td></tr>
    <tr><td class="paramname">intrinsicParams</td><td>[IN] The 3x3 calibration matrix. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
    <tr><td class="paramname">distortionParams</td><td>[IN] The 4-length vector with the distortion parameters [k1 k2 p1 p2]. See <a href="http://www.mrpt.org/Camera_Parameters">http://www.mrpt.org/Camera_Parameters</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#gaec6f784e2f55e5476d108ace5182ef5f" title="Undistort one point given by its pixel coordinates and the camera parameters.">undistort_point</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga34c41fd5660ccdbcd49b7733a41824f8"></a><!-- doxytag: member="mrpt::vision::pinhole::undistort_points" ref="ga34c41fd5660ccdbcd49b7733a41824f8" args="(const std::vector&lt; TPixelCoordf &gt; &amp;srcDistortedPixels, std::vector&lt; TPixelCoordf &gt; &amp;dstUndistortedPixels, const mrpt::utils::TCamera &amp;cameraModel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VISION_IMPEXP mrpt::vision::pinhole::undistort_points </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>srcDistortedPixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; TPixelCoordf &gt; &amp;&#160;</td>
          <td class="paramname"><em>dstUndistortedPixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraModel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortion coefficients. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">srcDistortedPixels</td><td>[IN] The pixel coordinates as in the distorted image. </td></tr>
    <tr><td class="paramname">dstUndistortedPixels</td><td>[OUT] The computed pixel coordinates without distortion. </td></tr>
    <tr><td class="paramname">cameraModel</td><td>[IN] The camera parameters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#gaec6f784e2f55e5476d108ace5182ef5f" title="Undistort one point given by its pixel coordinates and the camera parameters.">undistort_point</a> </dd></dl>

</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>