Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::vision::CCamModel Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1vision.html">vision</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html">CCamModel</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::vision::CCamModel Class Reference<div class="ingroups"><a class="el" href="group__mrpt__vision__grp.html">[mrpt-vision]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::vision::CCamModel" --><!-- doxytag: inherits="mrpt::utils::CLoadableOptions" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class represent a pinhole camera model for Monocular SLAM and implements some associated Jacobians. </p>
<p>The camera parameters are accessible in the public member <a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a6816942b827143fc7de3b7dff2cabe50" title="The parameters of a camera.">CCamModel::cam</a></p>
<ul>
<li>Versions:<ul>
<li>First version: By Antonio J. Ortiz de Galistea.</li>
<li>2009-2010: Rewritten by various authors.</li>
</ul>
</li>
</ul>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html" title="Structure to hold the parameters of a pinhole camera model.">mrpt::utils::TCamera</a>, CMonoSlam, the application <a href="http://www.mrpt.org/Application:camera-calib-gui">camera-calib-gui</a> for calibrating a camera </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_cam_model_8h_source.html">mrpt/vision/CCamModel.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::vision::CCamModel:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1vision_1_1_c_cam_model__inherit__graph.png" border="0" usemap="#mrpt_1_1vision_1_1_c_cam_model_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1vision_1_1_c_cam_model_inherit__map" id="mrpt_1_1vision_1_1_c_cam_model_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1utils_1_1_c_loadable_options.html" title="This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio..." alt="" coords="5,5,200,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1vision_1_1_c_cam_model-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#af68c1ffa23618aa33c8d2c1800730ba5">CCamModel</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor.  <a href="#af68c1ffa23618aa33c8d2c1800730ba5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a4177ba64df53e6c3d8885d9a51a7aa29">loadFromConfigFile</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;source, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method loads the options from a ".ini"-like file or memory-stored string list.  <a href="#a4177ba64df53e6c3d8885d9a51a7aa29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a5705f7e872caceb4c63a7defb8cd1f84">dumpToTextStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method displays clearly all the contents of the structure in textual form, sending it to a CStream.  <a href="#a5705f7e872caceb4c63a7defb8cd1f84"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a4b43221c7de4e33a1379b5a7d3dcee23">CCamModel</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;cfgIni)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from a ini file.  <a href="#a4b43221c7de4e33a1379b5a7d3dcee23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#ad2d7e966997489f7580f876f4d1d962e">jacob_undistor_fm</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;uvd, <a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;J_undist)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jacobian for undistortion the image coordinates.  <a href="#ad2d7e966997489f7580f876f4d1d962e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a5af4fe63a215e0d2b72b44c626b36f53">jacob_undistor</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;p, <a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">mrpt::math::CMatrixDouble</a> &amp;J_undist)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the image coordinates undistorted.  <a href="#a5af4fe63a215e0d2b72b44c626b36f53"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#af5900ebe4ef2984ef125b200606be18e">distort_a_point</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;p, <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;distorted_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel position distorted by the camera.  <a href="#af5900ebe4ef2984ef125b200606be18e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a59215f0b898787f5c67986577ae9558a">undistort_point</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;p, <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;undistorted_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel position undistorted by the camera The input values 'col' and 'row' will be replace for the new values (undistorted)  <a href="#a59215f0b898787f5c67986577ae9558a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a7a82b9e52ad8b9fbc1178758d920e4a6">project_3D_point</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;p3D, <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;distorted_p) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the (distorted) pixel position of a 3D point given in coordinates relative to the camera (+Z pointing forward, +X to the right)  <a href="#a7a82b9e52ad8b9fbc1178758d920e4a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a600b6858566dbc595cebf08ebf59489a">unproject_3D_point</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;distorted_p, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;p3D) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the 3D location of a point (at a fixed distance z=1), for the given (distorted) pixel position.  <a href="#a600b6858566dbc595cebf08ebf59489a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a346237d88bbed9b33993e2ff4cb5b46d">jacobian_project_with_distortion</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;p3D, <a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;dh_dy) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jacobian of the projection of 3D points (with distortion), as done in project_3D_point <img class="formulaInl" alt="$ \frac{\partial h}{\partial y} $" src="form_117.png"/>, evaluated at the point p3D (read below the full explanation)  <a href="#a346237d88bbed9b33993e2ff4cb5b46d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a14710adbc4b2856ff80e5b0207715de1">jacobian_unproject_with_distortion</a> (const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;p, <a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;dy_dh) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jacobian of the unprojection of a pixel (with distortion) back into a 3D point, as done in unproject_3D_point <img class="formulaInl" alt="$ \frac{\partial y}{\partial h} $" src="form_125.png"/>, evaluated at the pixel p.  <a href="#a14710adbc4b2856ff80e5b0207715de1"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename POINT &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#ab914ab4628377de3c857634a7136b206">getTemporaryVariablesForTransform</a> (const POINT &amp;p, <a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;v) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename POINT , typename PIXEL &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a07aa2cb171327074ad3cb76582a73754">getFullProjection</a> (const POINT &amp;pIn, PIXEL &amp;pOut) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename PIXEL &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#aa441286f9758c0a034d23c7078a4a777">getFullProjectionT</a> (const <a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;tmp, PIXEL &amp;pOut) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename POINT , typename MATRIX &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a1bc967a04b265249c56070b178ea9b15">getFullJacobian</a> (const POINT &amp;pIn, MATRIX &amp;mOut) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , typename POINT , typename MATRIX &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a842faddd778d61f88c1f6f8bf684e88e">getFullJacobianT</a> (const POINT &amp;pIn, const <a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;tmp, MATRIX &amp;mOut) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename POINTIN , typename POINTOUT , typename MAT22 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#aa7689e25c2dc657a50d73a7fad413d0d">getFullInverseModelWithJacobian</a> (const POINTIN &amp;pIn, POINTOUT &amp;pOut, MAT22 &amp;jOut) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a1ce8e0f241fe85f78095e23d37b2b635">loadFromConfigFileName</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;config_file, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Behaves like loadFromConfigFile, but you can pass directly a file name and a temporary <a class="el" href="classmrpt_1_1utils_1_1_c_config_file.html" title="This class allows loading and storing values and vectors of different types from &quot;.ini&quot; files easily.">CConfigFile</a> object will be created automatically to load the file.  <a href="#a1ce8e0f241fe85f78095e23d37b2b635"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a913c3433af4564cedeb25e24ace1cf28">saveToConfigFile</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;source, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method saves the options to a ".ini"-like file or memory-stored string list.  <a href="#a913c3433af4564cedeb25e24ace1cf28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#aa059b0160ed9881c284bcea9a42c51f8">saveToConfigFileName</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;config_file, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Behaves like saveToConfigFile, but you can pass directly a file name and a temporary <a class="el" href="classmrpt_1_1utils_1_1_c_config_file.html" title="This class allows loading and storing values and vectors of different types from &quot;.ini&quot; files easily.">CConfigFile</a> object will be created automatically to save the file.  <a href="#aa059b0160ed9881c284bcea9a42c51f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a37c6d8d52b1d9bdacaf073e6910bdd7f">dumpToConsole</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must display clearly all the contents of the structure in textual form, sending it to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a37c6d8d52b1d9bdacaf073e6910bdd7f"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a6816942b827143fc7de3b7dff2cabe50">cam</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The parameters of a camera.  <a href="#a6816942b827143fc7de3b7dff2cabe50"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a886e9903515fdb12d4f052a7fd582bb6">dumpVar_int</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out, const char *varName, int v)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to print variable info from dumpToTextStream with the macro LOADABLEOPTS_DUMP_VAR.  <a href="#a886e9903515fdb12d4f052a7fd582bb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a18862f2d04fc18dd2c2662331156189f">dumpVar_float</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out, const char *varName, float v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#ac4ee21d250d3b3574790ceac343a27a9">dumpVar_double</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out, const char *varName, double v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a63837b199914f55d8f0bd950f598fe14">dumpVar_bool</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out, const char *varName, bool v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a60b1c6599953f1d593e6a7b0421e5a77">dumpVar_string</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out, const char *varName, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;v)</td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 2, 2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#acc285978efc02edd77a5571f50cf21cb">firstInverseJacobian</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 4, 2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#aca310dda5e61a8a8a46bcf4ff32d8dda">secondInverseJacobian</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 3, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a3d472fbd80a0dff3c8a2f1e6052dc98c">thirdInverseJacobian</a> () const </td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af68c1ffa23618aa33c8d2c1800730ba5"></a><!-- doxytag: member="mrpt::vision::CCamModel::CCamModel" ref="af68c1ffa23618aa33c8d2c1800730ba5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CCamModel::CCamModel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default Constructor. </p>

</div>
</div>
<a class="anchor" id="a4b43221c7de4e33a1379b5a7d3dcee23"></a><!-- doxytag: member="mrpt::vision::CCamModel::CCamModel" ref="a4b43221c7de4e33a1379b5a7d3dcee23" args="(const mrpt::utils::CConfigFileBase &amp;cfgIni)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::vision::CCamModel::CCamModel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>cfgIni</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor from a ini file. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af5900ebe4ef2984ef125b200606be18e"></a><!-- doxytag: member="mrpt::vision::CCamModel::distort_a_point" ref="af5900ebe4ef2984ef125b200606be18e" args="(const mrpt::vision::TPixelCoordf &amp;p, mrpt::vision::TPixelCoordf &amp;distorted_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::distort_a_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>distorted_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the pixel position distorted by the camera. </p>

</div>
</div>
<a class="anchor" id="a37c6d8d52b1d9bdacaf073e6910bdd7f"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpToConsole" ref="a37c6d8d52b1d9bdacaf073e6910bdd7f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CLoadableOptions::dumpToConsole </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method must display clearly all the contents of the structure in textual form, sending it to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>. </p>

</div>
</div>
<a class="anchor" id="a5705f7e872caceb4c63a7defb8cd1f84"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpToTextStream" ref="a5705f7e872caceb4c63a7defb8cd1f84" args="(CStream &amp;out) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::dumpToTextStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method displays clearly all the contents of the structure in textual form, sending it to a CStream. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#adbe314b74deedfe953290ebf48750883">mrpt::utils::CLoadableOptions</a>.</p>

</div>
</div>
<a class="anchor" id="a63837b199914f55d8f0bd950f598fe14"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpVar_bool" ref="a63837b199914f55d8f0bd950f598fe14" args="(CStream &amp;out, const char *varName, bool v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CLoadableOptions::dumpVar_bool </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac4ee21d250d3b3574790ceac343a27a9"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpVar_double" ref="ac4ee21d250d3b3574790ceac343a27a9" args="(CStream &amp;out, const char *varName, double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CLoadableOptions::dumpVar_double </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a18862f2d04fc18dd2c2662331156189f"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpVar_float" ref="a18862f2d04fc18dd2c2662331156189f" args="(CStream &amp;out, const char *varName, float v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CLoadableOptions::dumpVar_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a886e9903515fdb12d4f052a7fd582bb6"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpVar_int" ref="a886e9903515fdb12d4f052a7fd582bb6" args="(CStream &amp;out, const char *varName, int v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CLoadableOptions::dumpVar_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to print variable info from dumpToTextStream with the macro LOADABLEOPTS_DUMP_VAR. </p>

</div>
</div>
<a class="anchor" id="a60b1c6599953f1d593e6a7b0421e5a77"></a><!-- doxytag: member="mrpt::vision::CCamModel::dumpVar_string" ref="a60b1c6599953f1d593e6a7b0421e5a77" args="(CStream &amp;out, const char *varName, const std::string &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CLoadableOptions::dumpVar_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acc285978efc02edd77a5571f50cf21cb"></a><!-- doxytag: member="mrpt::vision::CCamModel::firstInverseJacobian" ref="acc285978efc02edd77a5571f50cf21cb" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt;double,2,2&gt; mrpt::vision::CCamModel::firstInverseJacobian </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00224">224</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa7689e25c2dc657a50d73a7fad413d0d"></a><!-- doxytag: member="mrpt::vision::CCamModel::getFullInverseModelWithJacobian" ref="aa7689e25c2dc657a50d73a7fad413d0d" args="(const POINTIN &amp;pIn, POINTOUT &amp;pOut, MAT22 &amp;jOut) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename POINTIN , typename POINTOUT , typename MAT22 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getFullInverseModelWithJacobian </td>
          <td>(</td>
          <td class="paramtype">const POINTIN &amp;&#160;</td>
          <td class="paramname"><em>pIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">POINTOUT &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MAT22 &amp;&#160;</td>
          <td class="paramname"><em>jOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00251">251</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00161">mrpt::utils::square()</a>.</p>

</div>
</div>
<a class="anchor" id="a1bc967a04b265249c56070b178ea9b15"></a><!-- doxytag: member="mrpt::vision::CCamModel::getFullJacobian" ref="a1bc967a04b265249c56070b178ea9b15" args="(const POINT &amp;pIn, MATRIX &amp;mOut) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename POINT , typename MATRIX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getFullJacobian </td>
          <td>(</td>
          <td class="paramtype">const POINT &amp;&#160;</td>
          <td class="paramname"><em>pIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MATRIX &amp;&#160;</td>
          <td class="paramname"><em>mOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00179">179</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

</div>
</div>
<a class="anchor" id="a842faddd778d61f88c1f6f8bf684e88e"></a><!-- doxytag: member="mrpt::vision::CCamModel::getFullJacobianT" ref="a842faddd778d61f88c1f6f8bf684e88e" args="(const POINT &amp;pIn, const CameraTempVariables&lt; T &gt; &amp;tmp, MATRIX &amp;mOut) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename POINT , typename MATRIX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getFullJacobianT </td>
          <td>(</td>
          <td class="paramtype">const POINT &amp;&#160;</td>
          <td class="paramname"><em>pIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>tmp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MATRIX &amp;&#160;</td>
          <td class="paramname"><em>mOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>References <a class="el" href="bits_8h_source.html#l00161">mrpt::utils::square()</a>, <a class="el" href="_c_cam_model_8h_source.html#l00152">mrpt::vision::CCamModel::CameraTempVariables::R</a>, <a class="el" href="_c_cam_model_8h_source.html#l00150">mrpt::vision::CCamModel::CameraTempVariables::x_</a>, <a class="el" href="_c_cam_model_8h_source.html#l00150">mrpt::vision::CCamModel::CameraTempVariables::y_</a>, and <a class="el" href="_c_cam_model_8h_source.html#l00153">mrpt::vision::CCamModel::CameraTempVariables::K</a>.</p>

</div>
</div>
<a class="anchor" id="a07aa2cb171327074ad3cb76582a73754"></a><!-- doxytag: member="mrpt::vision::CCamModel::getFullProjection" ref="a07aa2cb171327074ad3cb76582a73754" args="(const POINT &amp;pIn, PIXEL &amp;pOut) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename POINT , typename PIXEL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getFullProjection </td>
          <td>(</td>
          <td class="paramtype">const POINT &amp;&#160;</td>
          <td class="paramname"><em>pIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PIXEL &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00168">168</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa441286f9758c0a034d23c7078a4a777"></a><!-- doxytag: member="mrpt::vision::CCamModel::getFullProjectionT" ref="aa441286f9758c0a034d23c7078a4a777" args="(const CameraTempVariables&lt; T &gt; &amp;tmp, PIXEL &amp;pOut) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename PIXEL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getFullProjectionT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>tmp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PIXEL &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00174">174</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

<p>References <a class="el" href="_c_cam_model_8h_source.html#l00154">mrpt::vision::CCamModel::CameraTempVariables::x__</a>, and <a class="el" href="_c_cam_model_8h_source.html#l00154">mrpt::vision::CCamModel::CameraTempVariables::y__</a>.</p>

</div>
</div>
<a class="anchor" id="ab914ab4628377de3c857634a7136b206"></a><!-- doxytag: member="mrpt::vision::CCamModel::getTemporaryVariablesForTransform" ref="ab914ab4628377de3c857634a7136b206" args="(const POINT &amp;p, CameraTempVariables&lt; T &gt; &amp;v) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename POINT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::getTemporaryVariablesForTransform </td>
          <td>(</td>
          <td class="paramtype">const POINT &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1vision_1_1_c_cam_model_1_1_camera_temp_variables.html">CameraTempVariables</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00156">156</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

<p>References <a class="el" href="_c_cam_model_8h_source.html#l00150">mrpt::vision::CCamModel::CameraTempVariables::x_</a>, <a class="el" href="_c_cam_model_8h_source.html#l00150">mrpt::vision::CCamModel::CameraTempVariables::y_</a>, <a class="el" href="_c_cam_model_8h_source.html#l00151">mrpt::vision::CCamModel::CameraTempVariables::x_2</a>, <a class="el" href="bits_8h_source.html#l00161">mrpt::utils::square()</a>, <a class="el" href="_c_cam_model_8h_source.html#l00151">mrpt::vision::CCamModel::CameraTempVariables::y_2</a>, <a class="el" href="_c_cam_model_8h_source.html#l00152">mrpt::vision::CCamModel::CameraTempVariables::R</a>, <a class="el" href="_c_cam_model_8h_source.html#l00153">mrpt::vision::CCamModel::CameraTempVariables::K</a>, <a class="el" href="_c_cam_model_8h_source.html#l00154">mrpt::vision::CCamModel::CameraTempVariables::x__</a>, and <a class="el" href="_c_cam_model_8h_source.html#l00154">mrpt::vision::CCamModel::CameraTempVariables::y__</a>.</p>

</div>
</div>
<a class="anchor" id="a5af4fe63a215e0d2b72b44c626b36f53"></a><!-- doxytag: member="mrpt::vision::CCamModel::jacob_undistor" ref="a5af4fe63a215e0d2b72b44c626b36f53" args="(const mrpt::vision::TPixelCoordf &amp;p, mrpt::math::CMatrixDouble &amp;J_undist)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::jacob_undistor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">mrpt::math::CMatrixDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>J_undist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculate the image coordinates undistorted. </p>

</div>
</div>
<a class="anchor" id="ad2d7e966997489f7580f876f4d1d962e"></a><!-- doxytag: member="mrpt::vision::CCamModel::jacob_undistor_fm" ref="ad2d7e966997489f7580f876f4d1d962e" args="(const mrpt::vision::TPixelCoordf &amp;uvd, math::CMatrixDouble &amp;J_undist)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::jacob_undistor_fm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>uvd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>J_undist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jacobian for undistortion the image coordinates. </p>

</div>
</div>
<a class="anchor" id="a346237d88bbed9b33993e2ff4cb5b46d"></a><!-- doxytag: member="mrpt::vision::CCamModel::jacobian_project_with_distortion" ref="a346237d88bbed9b33993e2ff4cb5b46d" args="(const mrpt::math::TPoint3D &amp;p3D, math::CMatrixDouble &amp;dh_dy) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::jacobian_project_with_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>dh_dy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jacobian of the projection of 3D points (with distortion), as done in project_3D_point <img class="formulaInl" alt="$ \frac{\partial h}{\partial y} $" src="form_117.png"/>, evaluated at the point p3D (read below the full explanation) </p>
<p>We define <img class="formulaInl" alt="$ h = (h_x ~ h_y) $" src="form_118.png"/> as the projected point in pixels (origin at the top-left corner), and <img class="formulaInl" alt="$ y=( y_x ~ y_y ~ y_z ) $" src="form_119.png"/> as the 3D point in space, in coordinates relative to the camera (+Z pointing forwards).</p>
<p>Then this method computes the 2x3 Jacobian:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \frac{\partial h}{\partial y} = \frac{\partial h}{\partial u} \frac{\partial u}{\partial y} \]" src="form_120.png"/>
</p>
<p>With:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \frac{\partial u}{\partial y} = \left( \begin{array}{ccc} \frac{f_x}{y_z} &amp; 0 &amp; - y \frac{f_x}{y_z^2} \\ 0 &amp; \frac{f_y}{y_z} &amp; - y \frac{f_y}{y_z^2} \\ \end{array} \right) \]" src="form_121.png"/>
</p>
<p>where <img class="formulaInl" alt="$ f_x, f_y $" src="form_122.png"/> is the focal length in units of pixel sizes in x and y, respectively. And, if we define:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ f = 1+ 2 k_1 (u_x^2+u_y^2) \]" src="form_123.png"/>
</p>
<p>then:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \frac{\partial h}{\partial u} = \left( \begin{array}{cc} \frac{ 1+2 k_1 u_y^2 }{f^{3/2}} &amp; -\frac{2 u_x u_y k_1 }{f^{3/2}} \\ -\frac{2 u_x u_y k_1 }{f^{3/2}} &amp; \frac{ 1+2 k_1 u_x^2 }{f^{3/2}} \end{array} \right) \]" src="form_124.png"/>
</p>
<dl class="note"><dt><b>Note:</b></dt><dd>JLBC: Added in March, 2009. Should be equivalent to Davison's WideCamera::ProjectionJacobian </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a7a82b9e52ad8b9fbc1178758d920e4a6" title="Return the (distorted) pixel position of a 3D point given in coordinates relative to the camera (+Z p...">project_3D_point</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a14710adbc4b2856ff80e5b0207715de1"></a><!-- doxytag: member="mrpt::vision::CCamModel::jacobian_unproject_with_distortion" ref="a14710adbc4b2856ff80e5b0207715de1" args="(const mrpt::vision::TPixelCoordf &amp;p, math::CMatrixDouble &amp;dy_dh) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::jacobian_unproject_with_distortion </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a3814c2b868f059d6a7ab0d8ecd2311d6">math::CMatrixDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>dy_dh</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jacobian of the unprojection of a pixel (with distortion) back into a 3D point, as done in unproject_3D_point <img class="formulaInl" alt="$ \frac{\partial y}{\partial h} $" src="form_125.png"/>, evaluated at the pixel p. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>JLBC: Added in March, 2009. Should be equivalent to Davison's WideCamera::UnprojectionJacobian </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a600b6858566dbc595cebf08ebf59489a" title="Return the 3D location of a point (at a fixed distance z=1), for the given (distorted) pixel position...">unproject_3D_point</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4177ba64df53e6c3d8885d9a51a7aa29"></a><!-- doxytag: member="mrpt::vision::CCamModel::loadFromConfigFile" ref="a4177ba64df53e6c3d8885d9a51a7aa29" args="(const mrpt::utils::CConfigFileBase &amp;source, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::loadFromConfigFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method loads the options from a ".ini"-like file or memory-stored string list. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#ae2373fce5f2c8d3f0bdad21433becad2">mrpt::utils::CLoadableOptions</a>.</p>

</div>
</div>
<a class="anchor" id="a1ce8e0f241fe85f78095e23d37b2b635"></a><!-- doxytag: member="mrpt::vision::CCamModel::loadFromConfigFileName" ref="a1ce8e0f241fe85f78095e23d37b2b635" args="(const std::string &amp;config_file, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CLoadableOptions::loadFromConfigFileName </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>config_file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Behaves like loadFromConfigFile, but you can pass directly a file name and a temporary <a class="el" href="classmrpt_1_1utils_1_1_c_config_file.html" title="This class allows loading and storing values and vectors of different types from &quot;.ini&quot; files easily.">CConfigFile</a> object will be created automatically to load the file. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#ae2373fce5f2c8d3f0bdad21433becad2" title="This method load the options from a &quot;.ini&quot;-like file or memory-stored string list.">loadFromConfigFile</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7a82b9e52ad8b9fbc1178758d920e4a6"></a><!-- doxytag: member="mrpt::vision::CCamModel::project_3D_point" ref="a7a82b9e52ad8b9fbc1178758d920e4a6" args="(const mrpt::math::TPoint3D &amp;p3D, mrpt::vision::TPixelCoordf &amp;distorted_p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::project_3D_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>distorted_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the (distorted) pixel position of a 3D point given in coordinates relative to the camera (+Z pointing forward, +X to the right) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a600b6858566dbc595cebf08ebf59489a" title="Return the 3D location of a point (at a fixed distance z=1), for the given (distorted) pixel position...">unproject_3D_point</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a913c3433af4564cedeb25e24ace1cf28"></a><!-- doxytag: member="mrpt::vision::CCamModel::saveToConfigFile" ref="a913c3433af4564cedeb25e24ace1cf28" args="(mrpt::utils::CConfigFileBase &amp;source, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CLoadableOptions::saveToConfigFile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method saves the options to a ".ini"-like file or memory-stored string list. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#ae2373fce5f2c8d3f0bdad21433becad2" title="This method load the options from a &quot;.ini&quot;-like file or memory-stored string list.">loadFromConfigFile</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#aa059b0160ed9881c284bcea9a42c51f8" title="Behaves like saveToConfigFile, but you can pass directly a file name and a temporary CConfigFile obje...">saveToConfigFileName</a> </dd></dl>

<p>Reimplemented in <a class="el" href="structmrpt_1_1vision_1_1_t_multi_res_desc_options.html#ab41c594d4e248ace4a2b6c7e4d082a1c">mrpt::vision::TMultiResDescOptions</a>, and <a class="el" href="structmrpt_1_1vision_1_1_t_multi_res_desc_match_options.html#a0ddc0e48338f1c420ed1e9a34d106865">mrpt::vision::TMultiResDescMatchOptions</a>.</p>

<p>Definition at line <a class="el" href="_c_loadable_options_8h_source.html#l00087">87</a> of file <a class="el" href="_c_loadable_options_8h_source.html">CLoadableOptions.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>.</p>

</div>
</div>
<a class="anchor" id="aa059b0160ed9881c284bcea9a42c51f8"></a><!-- doxytag: member="mrpt::vision::CCamModel::saveToConfigFileName" ref="aa059b0160ed9881c284bcea9a42c51f8" args="(const std::string &amp;config_file, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CLoadableOptions::saveToConfigFileName </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>config_file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Behaves like saveToConfigFile, but you can pass directly a file name and a temporary <a class="el" href="classmrpt_1_1utils_1_1_c_config_file.html" title="This class allows loading and storing values and vectors of different types from &quot;.ini&quot; files easily.">CConfigFile</a> object will be created automatically to save the file. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a913c3433af4564cedeb25e24ace1cf28" title="This method saves the options to a &quot;.ini&quot;-like file or memory-stored string list.">saveToConfigFile</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_loadable_options.html#a1ce8e0f241fe85f78095e23d37b2b635" title="Behaves like loadFromConfigFile, but you can pass directly a file name and a temporary CConfigFile ob...">loadFromConfigFileName</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aca310dda5e61a8a8a46bcf4ff32d8dda"></a><!-- doxytag: member="mrpt::vision::CCamModel::secondInverseJacobian" ref="aca310dda5e61a8a8a46bcf4ff32d8dda" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt;double,4,2&gt; mrpt::vision::CCamModel::secondInverseJacobian </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00230">230</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3d472fbd80a0dff3c8a2f1e6052dc98c"></a><!-- doxytag: member="mrpt::vision::CCamModel::thirdInverseJacobian" ref="a3d472fbd80a0dff3c8a2f1e6052dc98c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt;double,3,4&gt; mrpt::vision::CCamModel::thirdInverseJacobian </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00238">238</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

</div>
</div>
<a class="anchor" id="a59215f0b898787f5c67986577ae9558a"></a><!-- doxytag: member="mrpt::vision::CCamModel::undistort_point" ref="a59215f0b898787f5c67986577ae9558a" args="(const mrpt::vision::TPixelCoordf &amp;p, mrpt::vision::TPixelCoordf &amp;undistorted_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::undistort_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>undistorted_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the pixel position undistorted by the camera The input values 'col' and 'row' will be replace for the new values (undistorted) </p>

</div>
</div>
<a class="anchor" id="a600b6858566dbc595cebf08ebf59489a"></a><!-- doxytag: member="mrpt::vision::CCamModel::unproject_3D_point" ref="a600b6858566dbc595cebf08ebf59489a" args="(const mrpt::vision::TPixelCoordf &amp;distorted_p, mrpt::math::TPoint3D &amp;p3D) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::vision::CCamModel::unproject_3D_point </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">mrpt::vision::TPixelCoordf</a> &amp;&#160;</td>
          <td class="paramname"><em>distorted_p</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">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p3D</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the 3D location of a point (at a fixed distance z=1), for the given (distorted) pixel position. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a7a82b9e52ad8b9fbc1178758d920e4a6" title="Return the (distorted) pixel position of a 3D point given in coordinates relative to the camera (+Z p...">project_3D_point</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Of course, there is a depth ambiguity, so the returned 3D point must be considered a direction from the camera focus, or a vector, rather than a meaninful physical point. </dd></dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a6816942b827143fc7de3b7dff2cabe50"></a><!-- doxytag: member="mrpt::vision::CCamModel::cam" ref="a6816942b827143fc7de3b7dff2cabe50" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> <a class="el" href="classmrpt_1_1vision_1_1_c_cam_model.html#a6816942b827143fc7de3b7dff2cabe50">mrpt::vision::CCamModel::cam</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The parameters of a camera. </p>

<p>Definition at line <a class="el" href="_c_cam_model_8h_source.html#l00054">54</a> of file <a class="el" href="_c_cam_model_8h_source.html">CCamModel.h</a>.</p>

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