<!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>pinhole.h File 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> > <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 class="current"><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="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#namespaces">Namespaces</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">pinhole.h File Reference</div> </div> </div> <div class="contents"> <div class="textblock"><code>#include <<a class="el" href="_t_camera_8h_source.html">mrpt/utils/TCamera.h</a>></code><br/> <code>#include <<a class="el" href="vision_2include_2mrpt_2vision_2utils_8h_source.html">mrpt/vision/utils.h</a>></code><br/> </div><div class="textblock"><div class="dynheader"> Include dependency graph for pinhole.h:</div> <div class="dyncontent"> <div class="center"><img src="pinhole_8h__incl.png" border="0" usemap="#pinhole_8h" alt=""/></div> <map name="pinhole_8h" id="pinhole_8h"> <area shape="rect" id="node3" href="_t_camera_8h.html" title="mrpt/utils/TCamera.h" alt="" coords="1513,379,1657,405"/><area shape="rect" id="node116" href="vision_2include_2mrpt_2vision_2utils_8h.html" title="mrpt/vision/utils.h" alt="" coords="783,80,908,107"/><area shape="rect" id="node5" href="_c_matrix_template_numeric_8h.html" title="mrpt/math/CMatrixTemplateNumeric.h" alt="" coords="2040,752,2285,779"/><area shape="rect" id="node32" href="_c_serializable_8h.html" title="mrpt/utils/CSerializable.h" alt="" coords="829,976,997,1003"/><area shape="rect" id="node56" href="_c_matrix_fixed_numeric_8h.html" title="mrpt/math/CMatrixFixedNumeric.h" alt="" coords="1659,752,1881,779"/><area shape="rect" id="node61" href="_c_loadable_options_8h.html" title="mrpt/utils/CLoadableOptions.h" alt="" coords="94,677,292,704"/><area shape="rect" id="node64" href="_c_config_file_base_8h.html" title="mrpt/utils/CConfigFileBase.h" alt="" coords="1394,752,1584,779"/><area shape="rect" id="node83" href="_c_config_file_memory_8h.html" title="mrpt/utils/CConfigFileMemory.h" alt="" coords="1189,677,1395,704"/><area shape="rect" id="node93" href="_c_pose3_d_quat_8h.html" title="mrpt/poses/CPose3DQuat.h" alt="" coords="1724,453,1911,480"/><area shape="rect" id="node7" href="_c_matrix_template_8h.html" title="mrpt/math/CMatrixTemplate.h" alt="" coords="1973,827,2168,853"/><area shape="rect" id="node13" href="os_8h.html" title="mrpt/system/os.h" alt="" coords="615,1349,739,1376"/><area shape="rect" id="node9" href="utils__defs_8h.html" title="mrpt/utils/utils_defs.h" alt="" coords="1164,1275,1311,1301"/><area shape="rect" id="node24" href="math__frwds_8h.html" title="mrpt/math/math_frwds.h" alt="" coords="1853,976,2016,1003"/><area shape="rect" id="node28" href="_c_array_8h.html" title="mrpt/math/CArray.h" alt="" coords="1866,901,2003,928"/><area shape="rect" id="node16" href="boost__join_8h.html" title="mrpt/utils/boost_join.h" alt="" coords="45,1349,195,1376"/><area shape="rect" id="node34" href="_c_object_8h.html" title="mrpt/utils/CObject.h" alt="" coords="849,1125,988,1152"/><area shape="rect" id="node37" href="safe__pointers_8h.html" title="mrpt/utils/safe_pointers.h" alt="" coords="818,1200,987,1227"/><area shape="rect" id="node41" href="_c_stream_8h.html" title="mrpt/utils/CStream.h" alt="" coords="631,1051,773,1077"/><area shape="rect" id="node45" href="exceptions_8h.html" title="mrpt/utils/exceptions.h" alt="" coords="468,1125,621,1152"/><area shape="rect" id="node67" href="_t_enum_type_8h.html" title="mrpt/utils/TEnumType.h" alt="" coords="1380,827,1543,853"/><area shape="rect" id="node77" href="string__utils_8h.html" title="mrpt/system/string_utils.h" alt="" coords="1655,976,1828,1003"/><area shape="rect" id="node70" href="stl__extensions_8h.html" title="mrpt/utils/stl_extensions.h" alt="" coords="926,901,1100,928"/><area shape="rect" id="node87" href="_c_string_list_8h.html" title="mrpt/utils/CStringList.h" alt="" coords="1278,901,1433,928"/><area shape="rect" id="node95" href="_c_pose_8h.html" title="mrpt/poses/CPose.h" alt="" coords="1775,677,1917,704"/><area shape="rect" id="node98" href="_c_quaternion_8h.html" title="mrpt/math/CQuaternion.h" alt="" coords="2045,677,2213,704"/><area shape="rect" id="node102" href="_c_point3_d_8h.html" title="mrpt/poses/CPoint3D.h" alt="" coords="1826,528,1984,555"/><area shape="rect" id="node111" href="lightweight__geom__data_8h.html" title="mrpt/math/lightweight_geom_data.h" alt="" coords="975,827,1204,853"/><area shape="rect" id="node104" href="_c_point_8h.html" title="mrpt/poses/CPoint.h" alt="" coords="1253,603,1395,629"/><area shape="rect" id="node106" href="_c_pose3_d_8h.html" title="mrpt/poses/CPose3D.h" alt="" coords="1826,603,1984,629"/><area shape="rect" id="node118" href="_c_feature_8h.html" title="mrpt/vision/CFeature.h" alt="" coords="561,155,715,181"/><area shape="rect" id="node120" href="_c_image_8h.html" title="mrpt/utils/CImage.h" alt="" coords="586,304,723,331"/><area shape="rect" id="node151" href="vision_2include_2mrpt_2vision_2types_8h.html" title="mrpt/vision/types.h" alt="" coords="373,229,507,256"/><area shape="rect" id="node155" href="_t_matching_pair_8h.html" title="mrpt/utils/TMatchingPair.h" alt="" coords="874,304,1048,331"/><area shape="rect" id="node158" href="vision_2include_2mrpt_2vision_2link__pragmas_8h.html" title="mrpt/vision/link_pragmas.h" alt="" coords="145,304,324,331"/><area shape="rect" id="node164" href="base_2include_2mrpt_2math_2utils_8h.html" title="mrpt/math/utils.h" alt="" coords="2293,528,2413,555"/><area shape="rect" id="node184" href="_c_point2_d_8h.html" title="mrpt/poses/CPoint2D.h" alt="" coords="1173,528,1331,555"/><area shape="rect" id="node190" href="chessboard__camera__calib_8h.html" title="mrpt/vision/chessboard_camera_calib.h" alt="" coords="226,155,477,181"/><area shape="rect" id="node124" href="_c_matrix_8h.html" title="mrpt/math/CMatrix.h" alt="" coords="671,677,813,704"/><area shape="rect" id="node134" href="ops__matrices_8h.html" title="This file implements miscelaneous matrix and matrix/vector operations, plus internal functions in mrp..." alt="" coords="1002,603,1176,629"/><area shape="rect" id="node147" href="_k_d_tree_capable_8h.html" title="mrpt/math/KDTreeCapable.h" alt="" coords="721,752,911,779"/><area shape="rect" id="node130" href="_c_canvas_8h.html" title="mrpt/utils/CCanvas.h" alt="" coords="951,528,1097,555"/><area shape="rect" id="node169" href="_c_histogram_8h.html" title="mrpt/math/CHistogram.h" alt="" coords="2346,1200,2512,1227"/><area shape="rect" id="node173" href="ops__vectors_8h.html" title="mrpt/math/ops_vectors.h" alt="" coords="2391,677,2557,704"/></map> </div> </div><div class="textblock"><div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dyncontent"> <div class="center"><img src="pinhole_8h__dep__incl.png" border="0" usemap="#pinhole_8hdep" alt=""/></div> <map name="pinhole_8hdep" id="pinhole_8hdep"> <area shape="rect" id="node3" href="vision_8h.html" title="vision.h" alt="" coords="8,80,75,107"/></map> </div> </div> <p><a href="pinhole_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <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.html">mrpt</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. </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 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 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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#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="group__mrpt__vision__grp.html#gaec6f784e2f55e5476d108ace5182ef5f"></a><br/></td></tr> </table> </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>