<!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> > <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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> | <a href="#namespaces">Namespaces</a> | <a href="#groups">Modules</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <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 & 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 -> 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 "CObservation" 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   " 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   " 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   " 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-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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1slam.html">mrpt::slam</a></td></tr> <tr><td class="mdescLeft"> </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  </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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1vision.html">mrpt::vision</a></td></tr> <tr><td class="mdescLeft"> </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"> </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"> </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"> </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"> </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"> </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 </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"> </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 </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"> </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 </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"> </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"/> < TCameraPoseID, CPose3D ><br class="typebreak"/> ::map_t </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"> </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"/> < CPose3D >::vector_t </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"> </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>< TLandmarkID, <br class="typebreak"/> <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> > </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"> </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>< <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> > </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"> </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 </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"> </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"/> < <a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a>, <br class="typebreak"/> TRelativeFeaturePos > </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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga3a5b54ab814bafc8bb108e37bbee4e19">mrpt::vision::TFeatureType</a> { <br/>   <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/>   <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/>   <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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga1953f4dfcaf2e07e1049bc0a6bbf53ba">mrpt::vision::TDescriptorType</a> { <br/>   <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/>   <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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga0437f34e59ac06cddc3a490e2605bb71">mrpt::vision::TFeatureTrackStatus</a> { <br/>   <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/>   <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/>   <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 </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>< <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> > &in_points_3D, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &cameraPose, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &intrinsicParams, <a class="el" href="classstd_1_1vector.html">std::vector</a>< TPixelCoordf > &projectedPoints, bool accept_points_behind=false)</td></tr> <tr><td class="mdescLeft"> </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<bool INVERSE_CAM_POSE> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">TPixelCoordf </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> &cam_params, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &F, const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &P)</td></tr> <tr><td class="mdescLeft"> </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<typename POINT > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </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 &in_point_wrt_cam, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &cam_params, TPixelCoordf &out_projectedPoints)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP </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>< <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> > &in_points_3D, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> &cameraPose, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &intrinsicParams, const <a class="el" href="classstd_1_1vector.html">std::vector</a>< double > &distortionParams, <a class="el" href="classstd_1_1vector.html">std::vector</a>< TPixelCoordf > &projectedPoints, bool accept_points_behind=false)</td></tr> <tr><td class="mdescLeft"> </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 </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> &in_point_wrt_cam, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &in_cam_params, TPixelCoordf &out_projectedPoints, bool accept_points_behind=false)</td></tr> <tr><td class="mdescLeft"> </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 </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>< <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> > &P, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &params, const CPose3DQuat &cameraPose, <a class="el" href="classstd_1_1vector.html">std::vector</a>< TPixelCoordf > &pixels, bool accept_points_behind=false)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void VISION_IMPEXP </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>< TPixelCoordf > &srcDistortedPixels, <a class="el" href="classstd_1_1vector.html">std::vector</a>< TPixelCoordf > &dstUndistortedPixels, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">mrpt::math::CMatrixDouble33</a> &intrinsicParams, const <a class="el" href="classstd_1_1vector.html">std::vector</a>< double > &distortionParams)</td></tr> <tr><td class="mdescLeft"> </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 </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>< TPixelCoordf > &srcDistortedPixels, <a class="el" href="classstd_1_1vector.html">std::vector</a>< TPixelCoordf > &dstUndistortedPixels, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &cameraModel)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaec6f784e2f55e5476d108ace5182ef5f">mrpt::vision::pinhole::undistort_point</a> (const TPixelCoordf &inPt, TPixelCoordf &outPt, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &cameraModel)</td></tr> <tr><td class="mdescLeft"> </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 </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> &img, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &patch_img, size_t &x_max, size_t &y_max, double &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"> </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 </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> &img)</td></tr> <tr><td class="mdescLeft"> </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 </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> &xy, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &A)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga283472c90efde179b76bba7f278da263">mrpt::vision::deleteRepeatedFeats</a> (CFeatureList &list)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gadbb7002c4a2e832ff309c1eefad818ea">mrpt::vision::rowChecking</a> (CFeatureList &leftList, CFeatureList &rightList, float threshold=1.0)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga537c61afa2d0ef023376d933ba0c50fa">mrpt::vision::getDispersion</a> (const CFeatureList &list, vector_float &std, vector_float &mean)</td></tr> <tr><td class="mdescLeft"> </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 </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> &in_img, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &out_img, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &A, const vector_double &dist_coeffs)</td></tr> <tr><td class="mdescLeft"> </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 </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> &list, const poses::CPose3D &Rt)</td></tr> <tr><td class="mdescLeft"> </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 </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> &cloud1, const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html">CObservationVisualLandmarks</a> &cloud2, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &outList)</td></tr> <tr><td class="mdescLeft"> </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 </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> &image, unsigned int x, unsigned int y)</td></tr> <tr><td class="mdescLeft"> </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 </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> &image, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &nimage)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gad073bd2b1235df6a75e73a72df701204">mrpt::vision::matchFeatures</a> (const CFeatureList &list1, const CFeatureList &list2, CMatchedFeatureList &matches, const TMatchingOptions &options=TMatchingOptions(), const TStereoSystemParams &params=TStereoSystemParams())</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga1d6950fc414d2b15fb0ecb349a84098a">mrpt::vision::generateMask</a> (const CMatchedFeatureList &mList, <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &mask1, <a class="el" href="namespacemrpt_1_1math.html#a765e955a6829486aae0340e4087964e6">CMatrixBool</a> &mask2, int wSize=10)</td></tr> <tr><td class="mdescLeft"> </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 </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> &patch1, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &patch2)</td></tr> <tr><td class="mdescLeft"> </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 </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> &inImg, const CFeatureList &theList, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &outImg)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gad219474cf31289ceec53218a2accc73e">mrpt::vision::projectMatchedFeatures</a> (const CFeatureList &leftList, const CFeatureList &rightList, vector< <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> > &vP3D, const TStereoSystemParams &params=TStereoSystemParams())</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga30399c3913ad2700d9097dfdffd75cc8">mrpt::vision::projectMatchedFeature</a> (const CFeaturePtr &leftFeat, const CFeaturePtr &rightFeat, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &p3D, const TStereoSystemParams &params=TStereoSystemParams())</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gaa842d7fb358a77d51ebb78d871de9088">mrpt::vision::projectMatchedFeatures</a> (CMatchedFeatureList &mfList, const TStereoSystemParams &param, <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &landmarks)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#ga887ad9b3e2329ffc707e888f1977499d">mrpt::vision::projectMatchedFeatures</a> (CFeatureList &leftList, CFeatureList &rightList, const TStereoSystemParams &param, <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &landmarks)</td></tr> <tr><td class="mdescLeft"> </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 </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> &inObs, const vector< double > &sg, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &outObs)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__vision__grp.html#gabd4f827a4fc656d2bf8a17fbba7d85a8">mrpt::vision::StereoObs2BRObs</a> (const CMatchedFeatureList &inMatches, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &intrinsicParams, const double &baseline, const CPose3D &sensorPose, const vector< double > &sg, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &outObs)</td></tr> <tr><td class="mdescLeft"> </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 </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> &inObs, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &outObs)</td></tr> <tr><td class="mdescLeft"> </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 </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> &cam1, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">TCamera</a> &cam2, const poses::CPose3D &rightCameraPose, void *outMap1x, void *outMap1y, void *outMap2x, void *outMap2y)</td></tr> <tr><td class="mdescLeft"> </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><TCameraPoseID,CPose3D>::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><CPose3D>::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><TLandmarkID,<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a>> <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><<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a>> <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><<a class="el" href="group__mrpt__vision__grp.html#ga5bfc93fce347933b63640f2de874ba26">mrpt::vision::TFeatureID</a>, TRelativeFeaturePos> <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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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 "landmarks" (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> </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> </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> </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> </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 &inImg, const CFeatureList &theList, CImage &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> & </td> <td class="paramname"><em>inImg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CFeatureList & </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> & </td> <td class="paramname"><em>outImg</em> </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 </td> <td class="paramname"><em>focalLengthX</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"><em>focalLengthY</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"><em>centerX</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"><em>centerY</em> </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 &cloud1, const CObservationVisualLandmarks &cloud2, TMatchingPairList &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> & </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> & </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> & </td> <td class="paramname"><em>outList</em> </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 &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> & </td> <td class="paramname"><em>image</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>y</em> </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 &list, const poses::CPose3D &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> & </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const poses::CPose3D & </td> <td class="paramname"><em>Rt</em> </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 &patch1, const CImage &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> & </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> & </td> <td class="paramname"><em>patch2</em> </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 &cam1, const TCamera &cam2, const poses::CPose3D &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> & </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> & </td> <td class="paramname"><em>cam2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const poses::CPose3D & </td> <td class="paramname"><em>rightCameraPose</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>outMap1x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>outMap1y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>outMap2x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>outMap2y</em> </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 &in_img, CImage &out_img, const CMatrixDouble33 &A, const vector_double &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> & </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> & </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> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const vector_double & </td> <td class="paramname"><em>dist_coeffs</em> </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 </td> <td class="paramname"><em>camIndex</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>resolutionX</em> = <code>320</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>resolutionY</em> = <code>240</code> </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 &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 & </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 &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> & </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 &mList, CMatrixBool &mask1, CMatrixBool &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 & </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> & </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> & </td> <td class="paramname"><em>mask2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>wSize</em> = <code>10</code> </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 &list, vector_float &std, vector_float &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 & </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">vector_float & </td> <td class="paramname"><em>std</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">vector_float & </td> <td class="paramname"><em>mean</em> </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 &list1, const CFeatureList &list2, CMatchedFeatureList &matches, const TMatchingOptions &options=TMatchingOptions(), const TStereoSystemParams &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 & </td> <td class="paramname"><em>list1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CFeatureList & </td> <td class="paramname"><em>list2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">CMatchedFeatureList & </td> <td class="paramname"><em>matches</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TMatchingOptions & </td> <td class="paramname"><em>options</em> = <code>TMatchingOptions()</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TStereoSystemParams & </td> <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code> </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 &image, CImage &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> & </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> & </td> <td class="paramname"><em>nimage</em> </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 &img, const CImage &patch_img, size_t &x_max, size_t &y_max, double &max_val, int x_search_ini=-1, int y_search_ini=-1, int x_search_size=-1, int y_search_size=-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> & </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> & </td> <td class="paramname"><em>patch_img</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t & </td> <td class="paramname"><em>x_max</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t & </td> <td class="paramname"><em>y_max</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double & </td> <td class="paramname"><em>max_val</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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 </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 </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 </td> <td class="paramname"><em>y_search_size</em> = <code>-1</code> </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 &xy, const CMatrixDouble33 &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> & </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> & </td> <td class="paramname"><em>A</em> </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 &leftFeat, const CFeaturePtr &rightFeat, TPoint3D &p3D, const TStereoSystemParams &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 & </td> <td class="paramname"><em>leftFeat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CFeaturePtr & </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> & </td> <td class="paramname"><em>p3D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TStereoSystemParams & </td> <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code> </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 &leftList, const CFeatureList &rightList, vector< TPoint3D > &vP3D, const TStereoSystemParams &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 & </td> <td class="paramname"><em>leftList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CFeatureList & </td> <td class="paramname"><em>rightList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">vector< <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> > & </td> <td class="paramname"><em>vP3D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TStereoSystemParams & </td> <td class="paramname"><em>params</em> = <code>TStereoSystemParams()</code> </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]<->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 &mfList, const TStereoSystemParams &param, CLandmarksMap &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 & </td> <td class="paramname"><em>mfList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TStereoSystemParams & </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> & </td> <td class="paramname"><em>landmarks</em> </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 &leftList, CFeatureList &rightList, const TStereoSystemParams &param, CLandmarksMap &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 & </td> <td class="paramname"><em>leftList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">CFeatureList & </td> <td class="paramname"><em>rightList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const TStereoSystemParams & </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> & </td> <td class="paramname"><em>landmarks</em> </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 &cam_params, const mrpt::poses::CPose3D &F, const mrpt::math::TPoint3D &P)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<bool INVERSE_CAM_POSE> </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> & </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> & </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> & </td> <td class="paramname"><em>P</em> </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 -> 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 -> 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 &in_point_wrt_cam, const mrpt::utils::TCamera &cam_params, TPixelCoordf &out_projectedPoints)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename POINT > </div> <table class="memname"> <tr> <td class="memname">void mrpt::vision::pinhole::projectPoint_no_distortion </td> <td>(</td> <td class="paramtype">const POINT & </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> & </td> <td class="paramname"><em>cam_params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TPixelCoordf & </td> <td class="paramname"><em>out_projectedPoints</em> </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 &in_point_wrt_cam, const mrpt::utils::TCamera &in_cam_params, TPixelCoordf &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> & </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> & </td> <td class="paramname"><em>in_cam_params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TPixelCoordf & </td> <td class="paramname"><em>out_projectedPoints</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>accept_points_behind</em> = <code>false</code> </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< mrpt::poses::CPoint3D > &in_points_3D, const mrpt::poses::CPose3D &cameraPose, const mrpt::math::CMatrixDouble33 &intrinsicParams, std::vector< TPixelCoordf > &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>< <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> > & </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> & </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> & </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>< TPixelCoordf > & </td> <td class="paramname"><em>projectedPoints</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>accept_points_behind</em> = <code>false</code> </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< mrpt::poses::CPoint3D > &in_points_3D, const mrpt::poses::CPose3D &cameraPose, const mrpt::math::CMatrixDouble33 &intrinsicParams, const std::vector< double > &distortionParams, std::vector< TPixelCoordf > &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>< <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">mrpt::poses::CPoint3D</a> > & </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> & </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> & </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>< double > & </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>< TPixelCoordf > & </td> <td class="paramname"><em>projectedPoints</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>accept_points_behind</em> = <code>false</code> </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< mrpt::math::TPoint3D > &P, const mrpt::utils::TCamera &params, const CPose3DQuat &cameraPose, std::vector< TPixelCoordf > &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>< <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> > & </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> & </td> <td class="paramname"><em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CPose3DQuat & </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>< TPixelCoordf > & </td> <td class="paramname"><em>pixels</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>accept_points_behind</em> = <code>false</code> </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 &leftList, CFeatureList &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 & </td> <td class="paramname"><em>leftList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">CFeatureList & </td> <td class="paramname"><em>rightList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>threshold</em> = <code>1.0</code> </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 &inObs, const vector< double > &sg, CObservationBearingRange &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> & </td> <td class="paramname"><em>inObs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const vector< double > & </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> & </td> <td class="paramname"><em>outObs</em> </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 &inMatches, const CMatrixDouble33 &intrinsicParams, const double &baseline, const CPose3D &sensorPose, const vector< double > &sg, CObservationBearingRange &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 & </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> & </td> <td class="paramname"><em>intrinsicParams</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double & </td> <td class="paramname"><em>baseline</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const CPose3D & </td> <td class="paramname"><em>sensorPose</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const vector< double > & </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> & </td> <td class="paramname"><em>outObs</em> </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 &inObs, CObservationBearingRange &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> & </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> & </td> <td class="paramname"><em>outObs</em> </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 &inPt, TPixelCoordf &outPt, const mrpt::utils::TCamera &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 & </td> <td class="paramname"><em>inPt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TPixelCoordf & </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> & </td> <td class="paramname"><em>cameraModel</em> </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< TPixelCoordf > &srcDistortedPixels, std::vector< TPixelCoordf > &dstUndistortedPixels, const mrpt::math::CMatrixDouble33 &intrinsicParams, const std::vector< double > &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>< TPixelCoordf > & </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>< TPixelCoordf > & </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> & </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>< double > & </td> <td class="paramname"><em>distortionParams</em> </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< TPixelCoordf > &srcDistortedPixels, std::vector< TPixelCoordf > &dstUndistortedPixels, const mrpt::utils::TCamera &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>< TPixelCoordf > & </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>< TPixelCoordf > & </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> & </td> <td class="paramname"><em>cameraModel</em> </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>