mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
1931 lines
112 KiB
HTML
1931 lines
112 KiB
HTML
<!-- HTML header for doxygen 1.9.8-->
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.9.8"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>RTAB-Map: rtabmap::CameraModel Class Reference</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="resize.js"></script>
|
||
<script type="text/javascript" src="navtreedata.js"></script>
|
||
<script type="text/javascript" src="navtree.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
||
<link href="custom.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript">window.RTABMAP_DOC_ROOT="";</script>
|
||
<script type="text/javascript" src="../versions.js"></script>
|
||
<script type="text/javascript" src="version-switcher.js"></script>
|
||
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
|
||
<script type="text/javascript">DoxygenAwesomeDarkModeToggle.init();</script>
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr id="projectrow">
|
||
<td id="projectalign">
|
||
<div id="projectname">RTAB-Map<span id="projectnumber"> 0.23.13</span>
|
||
</div>
|
||
<div id="projectbrief">Real-Time Appearance-Based Mapping</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.9.8 -->
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search');
|
||
$(document).ready(function() { init_search(); });
|
||
});
|
||
/* @license-end */
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
</div><!-- top -->
|
||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
<div id="nav-tree">
|
||
<div id="nav-tree-contents">
|
||
<div id="nav-sync" class="sync"></div>
|
||
</div>
|
||
</div>
|
||
<div id="splitbar" style="-moz-user-select:none;"
|
||
class="ui-resizable-handle">
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(document).ready(function(){initNavTree('classrtabmap_1_1CameraModel.html',''); initResizable(); });
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<div id="MSearchResults">
|
||
<div class="SRPage">
|
||
<div id="SRIndex">
|
||
<div id="SRResults"></div>
|
||
<div class="SRStatus" id="Loading">Loading...</div>
|
||
<div class="SRStatus" id="Searching">Searching...</div>
|
||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||
<a href="classrtabmap_1_1CameraModel-members.html">List of all members</a> </div>
|
||
<div class="headertitle"><div class="title">rtabmap::CameraModel Class Reference</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
|
||
<p>Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection, rectification, and transformation.
|
||
<a href="classrtabmap_1_1CameraModel.html#details">More...</a></p>
|
||
|
||
<p><code>#include <<a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>></code></p>
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||
Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:adad6652a711eecc9a50e544f14d276cd" id="r_adad6652a711eecc9a50e544f14d276cd"><td class="memItemLeft" align="right" valign="top"><a id="adad6652a711eecc9a50e544f14d276cd" name="adad6652a711eecc9a50e544f14d276cd"></a>
|
||
 </td><td class="memItemRight" valign="bottom"><b>CameraModel</b> ()</td></tr>
|
||
<tr class="memdesc:adad6652a711eecc9a50e544f14d276cd"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br /></td></tr>
|
||
<tr class="separator:adad6652a711eecc9a50e544f14d276cd"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4810e60f3af95b73a61879aa97201695" id="r_a4810e60f3af95b73a61879aa97201695"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a4810e60f3af95b73a61879aa97201695">CameraModel</a> (const std::string &<a class="el" href="classrtabmap_1_1CameraModel.html#aa152828f20e1cf0ffab7bb25178191b5">name</a>, const cv::Size &imageSize, const cv::Mat &<a class="el" href="classrtabmap_1_1CameraModel.html#a5df2e6c3f361b7084e4d26d7f1846e3d">K</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1CameraModel.html#a4aa121905a9b2aabb6a3592a6eb7459a">D</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1CameraModel.html#ad763246258ddf02c27873c2536901781">R</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1CameraModel.html#acda5d9c4eeeaaad69e950f5ea630430a">P</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1CameraModel.html#a8a1712ca95bf08c71b2bf2da1d635bc8">localTransform</a>=<a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a>())</td></tr>
|
||
<tr class="memdesc:a4810e60f3af95b73a61879aa97201695"><td class="mdescLeft"> </td><td class="mdescRight">Constructor using full camera parameters. <br /></td></tr>
|
||
<tr class="separator:a4810e60f3af95b73a61879aa97201695"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aadb6b19ea8a94f3f6719ea0233196c34" id="r_aadb6b19ea8a94f3f6719ea0233196c34"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aadb6b19ea8a94f3f6719ea0233196c34">CameraModel</a> (double <a class="el" href="classrtabmap_1_1CameraModel.html#acea616d4e141804dbc5c6eda58bebf6b">fx</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#ac4089d34947b040205e281edae4151a1">fy</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#af81ee9572d32f69bf0a66cd1f4671c20">cx</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#aa3a18f811d3e9db290d01371e078add3">cy</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1CameraModel.html#a8a1712ca95bf08c71b2bf2da1d635bc8">localTransform</a>=<a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a>(), double <a class="el" href="classrtabmap_1_1CameraModel.html#a6f6dc18af13a777e89a75725ef3e8ab4">Tx</a>=0.0f, const cv::Size &imageSize=cv::Size(0, 0))</td></tr>
|
||
<tr class="memdesc:aadb6b19ea8a94f3f6719ea0233196c34"><td class="mdescLeft"> </td><td class="mdescRight">Minimal constructor using intrinsic parameters. This assumes the images are already rectified. <br /></td></tr>
|
||
<tr class="separator:aadb6b19ea8a94f3f6719ea0233196c34"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a745c2d60ef6b460ca380aebd55b5d61c" id="r_a745c2d60ef6b460ca380aebd55b5d61c"><td class="memItemLeft" align="right" valign="top"><a id="a745c2d60ef6b460ca380aebd55b5d61c" name="a745c2d60ef6b460ca380aebd55b5d61c"></a>
|
||
 </td><td class="memItemRight" valign="bottom"><b>CameraModel</b> (const std::string &<a class="el" href="classrtabmap_1_1CameraModel.html#aa152828f20e1cf0ffab7bb25178191b5">name</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#acea616d4e141804dbc5c6eda58bebf6b">fx</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#ac4089d34947b040205e281edae4151a1">fy</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#af81ee9572d32f69bf0a66cd1f4671c20">cx</a>, double <a class="el" href="classrtabmap_1_1CameraModel.html#aa3a18f811d3e9db290d01371e078add3">cy</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1CameraModel.html#a8a1712ca95bf08c71b2bf2da1d635bc8">localTransform</a>=<a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a>(), double <a class="el" href="classrtabmap_1_1CameraModel.html#a6f6dc18af13a777e89a75725ef3e8ab4">Tx</a>=0.0f, const cv::Size &imageSize=cv::Size(0, 0))</td></tr>
|
||
<tr class="memdesc:a745c2d60ef6b460ca380aebd55b5d61c"><td class="mdescLeft"> </td><td class="mdescRight">Minimal constructor with name for saving. <br /></td></tr>
|
||
<tr class="separator:a745c2d60ef6b460ca380aebd55b5d61c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:af6f35e5071ef0070d3fae3ebaa33ce4c" id="r_af6f35e5071ef0070d3fae3ebaa33ce4c"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#af6f35e5071ef0070d3fae3ebaa33ce4c">~CameraModel</a> ()</td></tr>
|
||
<tr class="memdesc:af6f35e5071ef0070d3fae3ebaa33ce4c"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br /></td></tr>
|
||
<tr class="separator:af6f35e5071ef0070d3fae3ebaa33ce4c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5690a86d11b0d84e80961ae5d38b1d25" id="r_a5690a86d11b0d84e80961ae5d38b1d25"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25">initRectificationMap</a> ()</td></tr>
|
||
<tr class="memdesc:a5690a86d11b0d84e80961ae5d38b1d25"><td class="mdescLeft"> </td><td class="mdescRight">Initializes the rectification maps used to undistort and rectify images. <br /></td></tr>
|
||
<tr class="separator:a5690a86d11b0d84e80961ae5d38b1d25"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a80cacb16d347e89980369cb2e02f3d48" id="r_a80cacb16d347e89980369cb2e02f3d48"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a80cacb16d347e89980369cb2e02f3d48">isRectificationMapInitialized</a> () const</td></tr>
|
||
<tr class="memdesc:a80cacb16d347e89980369cb2e02f3d48"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the rectification map has been initialized. <br /></td></tr>
|
||
<tr class="separator:a80cacb16d347e89980369cb2e02f3d48"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7b6db41415e085d52bf363d09d5e6d67" id="r_a7b6db41415e085d52bf363d09d5e6d67"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a7b6db41415e085d52bf363d09d5e6d67">isValidForProjection</a> () const</td></tr>
|
||
<tr class="memdesc:a7b6db41415e085d52bf363d09d5e6d67"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the model is valid for 2D->3D projection. <br /></td></tr>
|
||
<tr class="separator:a7b6db41415e085d52bf363d09d5e6d67"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:abd4db4f23eb05d531a34ee44f7cdb687" id="r_abd4db4f23eb05d531a34ee44f7cdb687"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#abd4db4f23eb05d531a34ee44f7cdb687">isValidForReprojection</a> () const</td></tr>
|
||
<tr class="memdesc:abd4db4f23eb05d531a34ee44f7cdb687"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the model is valid for 3D->2D reprojection. <br /></td></tr>
|
||
<tr class="separator:abd4db4f23eb05d531a34ee44f7cdb687"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a46864eb8de680d45d79777e828dcbb6a" id="r_a46864eb8de680d45d79777e828dcbb6a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a46864eb8de680d45d79777e828dcbb6a">isValidForRectification</a> () const</td></tr>
|
||
<tr class="memdesc:a46864eb8de680d45d79777e828dcbb6a"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the model has sufficient data for image rectification. <br /></td></tr>
|
||
<tr class="separator:a46864eb8de680d45d79777e828dcbb6a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a402a407fa2bca721087a6deda24cc10d" id="r_a402a407fa2bca721087a6deda24cc10d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a402a407fa2bca721087a6deda24cc10d">setName</a> (const std::string &<a class="el" href="classrtabmap_1_1CameraModel.html#aa152828f20e1cf0ffab7bb25178191b5">name</a>)</td></tr>
|
||
<tr class="memdesc:a402a407fa2bca721087a6deda24cc10d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the camera name, used to set a camera name when saving to a file. <br /></td></tr>
|
||
<tr class="separator:a402a407fa2bca721087a6deda24cc10d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aa152828f20e1cf0ffab7bb25178191b5" id="r_aa152828f20e1cf0ffab7bb25178191b5"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aa152828f20e1cf0ffab7bb25178191b5">name</a> () const</td></tr>
|
||
<tr class="memdesc:aa152828f20e1cf0ffab7bb25178191b5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the camera name. <br /></td></tr>
|
||
<tr class="separator:aa152828f20e1cf0ffab7bb25178191b5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:acea616d4e141804dbc5c6eda58bebf6b" id="r_acea616d4e141804dbc5c6eda58bebf6b"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#acea616d4e141804dbc5c6eda58bebf6b">fx</a> () const</td></tr>
|
||
<tr class="memdesc:acea616d4e141804dbc5c6eda58bebf6b"><td class="mdescLeft"> </td><td class="mdescRight">Returns focal length in x. <br /></td></tr>
|
||
<tr class="separator:acea616d4e141804dbc5c6eda58bebf6b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac4089d34947b040205e281edae4151a1" id="r_ac4089d34947b040205e281edae4151a1"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ac4089d34947b040205e281edae4151a1">fy</a> () const</td></tr>
|
||
<tr class="memdesc:ac4089d34947b040205e281edae4151a1"><td class="mdescLeft"> </td><td class="mdescRight">Returns focal length in y. <br /></td></tr>
|
||
<tr class="separator:ac4089d34947b040205e281edae4151a1"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:af81ee9572d32f69bf0a66cd1f4671c20" id="r_af81ee9572d32f69bf0a66cd1f4671c20"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#af81ee9572d32f69bf0a66cd1f4671c20">cx</a> () const</td></tr>
|
||
<tr class="memdesc:af81ee9572d32f69bf0a66cd1f4671c20"><td class="mdescLeft"> </td><td class="mdescRight">Returns principal point x. <br /></td></tr>
|
||
<tr class="separator:af81ee9572d32f69bf0a66cd1f4671c20"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aa3a18f811d3e9db290d01371e078add3" id="r_aa3a18f811d3e9db290d01371e078add3"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aa3a18f811d3e9db290d01371e078add3">cy</a> () const</td></tr>
|
||
<tr class="memdesc:aa3a18f811d3e9db290d01371e078add3"><td class="mdescLeft"> </td><td class="mdescRight">Returns principal point y. <br /></td></tr>
|
||
<tr class="separator:aa3a18f811d3e9db290d01371e078add3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a6f6dc18af13a777e89a75725ef3e8ab4" id="r_a6f6dc18af13a777e89a75725ef3e8ab4"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a6f6dc18af13a777e89a75725ef3e8ab4">Tx</a> () const</td></tr>
|
||
<tr class="memdesc:a6f6dc18af13a777e89a75725ef3e8ab4"><td class="mdescLeft"> </td><td class="mdescRight">Returns the x translation (usually fx * baseline in case of stereo, otherwise would be 0). <br /></td></tr>
|
||
<tr class="separator:a6f6dc18af13a777e89a75725ef3e8ab4"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ada626650b01d35b494016a5490efb31a" id="r_ada626650b01d35b494016a5490efb31a"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ada626650b01d35b494016a5490efb31a">K_raw</a> () const</td></tr>
|
||
<tr class="memdesc:ada626650b01d35b494016a5490efb31a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the raw intrinsic matrix (before rectification). <br /></td></tr>
|
||
<tr class="separator:ada626650b01d35b494016a5490efb31a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a88ec7053f4d442c4b1b79803c2840f28" id="r_a88ec7053f4d442c4b1b79803c2840f28"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a88ec7053f4d442c4b1b79803c2840f28">D_raw</a> () const</td></tr>
|
||
<tr class="memdesc:a88ec7053f4d442c4b1b79803c2840f28"><td class="mdescLeft"> </td><td class="mdescRight">Returns the raw distortion coefficients (before rectification). <br /></td></tr>
|
||
<tr class="separator:a88ec7053f4d442c4b1b79803c2840f28"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5df2e6c3f361b7084e4d26d7f1846e3d" id="r_a5df2e6c3f361b7084e4d26d7f1846e3d"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a5df2e6c3f361b7084e4d26d7f1846e3d">K</a> () const</td></tr>
|
||
<tr class="memdesc:a5df2e6c3f361b7084e4d26d7f1846e3d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the rectified camera intrinsic matrix if the projection matrix P exists, otherwise returns the raw intrinsic matrix. <br /></td></tr>
|
||
<tr class="separator:a5df2e6c3f361b7084e4d26d7f1846e3d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4aa121905a9b2aabb6a3592a6eb7459a" id="r_a4aa121905a9b2aabb6a3592a6eb7459a"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a4aa121905a9b2aabb6a3592a6eb7459a">D</a> () const</td></tr>
|
||
<tr class="memdesc:a4aa121905a9b2aabb6a3592a6eb7459a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the rectified distortion coefficients (1x5 filled with zeros) if the projection matrix P exists, otherwise returns the raw distortion coefficients. <br /></td></tr>
|
||
<tr class="separator:a4aa121905a9b2aabb6a3592a6eb7459a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad763246258ddf02c27873c2536901781" id="r_ad763246258ddf02c27873c2536901781"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ad763246258ddf02c27873c2536901781">R</a> () const</td></tr>
|
||
<tr class="memdesc:ad763246258ddf02c27873c2536901781"><td class="mdescLeft"> </td><td class="mdescRight">Returns the rectification matrix. <br /></td></tr>
|
||
<tr class="separator:ad763246258ddf02c27873c2536901781"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:acda5d9c4eeeaaad69e950f5ea630430a" id="r_acda5d9c4eeeaaad69e950f5ea630430a"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#acda5d9c4eeeaaad69e950f5ea630430a">P</a> () const</td></tr>
|
||
<tr class="memdesc:acda5d9c4eeeaaad69e950f5ea630430a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the projection matrix. <br /></td></tr>
|
||
<tr class="separator:acda5d9c4eeeaaad69e950f5ea630430a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aa1325c971f17d371553c3f75be7aeece" id="r_aa1325c971f17d371553c3f75be7aeece"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aa1325c971f17d371553c3f75be7aeece">setLocalTransform</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &transform)</td></tr>
|
||
<tr class="memdesc:aa1325c971f17d371553c3f75be7aeece"><td class="mdescLeft"> </td><td class="mdescRight">Sets the local transform of the camera (base frame to optical frame). <br /></td></tr>
|
||
<tr class="separator:aa1325c971f17d371553c3f75be7aeece"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8a1712ca95bf08c71b2bf2da1d635bc8" id="r_a8a1712ca95bf08c71b2bf2da1d635bc8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a8a1712ca95bf08c71b2bf2da1d635bc8">localTransform</a> () const</td></tr>
|
||
<tr class="memdesc:a8a1712ca95bf08c71b2bf2da1d635bc8"><td class="mdescLeft"> </td><td class="mdescRight">Returns the local transform (base frame to optical frame). <br /></td></tr>
|
||
<tr class="separator:a8a1712ca95bf08c71b2bf2da1d635bc8"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a43fd48b917ca145876024859f8565931" id="r_a43fd48b917ca145876024859f8565931"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a43fd48b917ca145876024859f8565931">setImageSize</a> (const cv::Size &size)</td></tr>
|
||
<tr class="memdesc:a43fd48b917ca145876024859f8565931"><td class="mdescLeft"> </td><td class="mdescRight">Sets the image size of the camera model and updates the principal point if undefined. <br /></td></tr>
|
||
<tr class="separator:a43fd48b917ca145876024859f8565931"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7cf97039fa39ad03e3910a434b9acd93" id="r_a7cf97039fa39ad03e3910a434b9acd93"><td class="memItemLeft" align="right" valign="top">const cv::Size & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a7cf97039fa39ad03e3910a434b9acd93">imageSize</a> () const</td></tr>
|
||
<tr class="separator:a7cf97039fa39ad03e3910a434b9acd93"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a6983cc1325c9e1c37d957470df7fbf9b" id="r_a6983cc1325c9e1c37d957470df7fbf9b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a6983cc1325c9e1c37d957470df7fbf9b">imageWidth</a> () const</td></tr>
|
||
<tr class="separator:a6983cc1325c9e1c37d957470df7fbf9b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae8a8e26a9aa0469fa8c5a7f3b7827df9" id="r_ae8a8e26a9aa0469fa8c5a7f3b7827df9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ae8a8e26a9aa0469fa8c5a7f3b7827df9">imageHeight</a> () const</td></tr>
|
||
<tr class="separator:ae8a8e26a9aa0469fa8c5a7f3b7827df9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac3aa6835f8ae019de4dbf85eed849b75" id="r_ac3aa6835f8ae019de4dbf85eed849b75"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ac3aa6835f8ae019de4dbf85eed849b75">fovX</a> () const</td></tr>
|
||
<tr class="memdesc:ac3aa6835f8ae019de4dbf85eed849b75"><td class="mdescLeft"> </td><td class="mdescRight">Returns the horizontal field of view (FoV) in radians. <br /></td></tr>
|
||
<tr class="separator:ac3aa6835f8ae019de4dbf85eed849b75"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:af4df41cc8a613f3e03b1ed14fc0a887e" id="r_af4df41cc8a613f3e03b1ed14fc0a887e"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#af4df41cc8a613f3e03b1ed14fc0a887e">fovY</a> () const</td></tr>
|
||
<tr class="memdesc:af4df41cc8a613f3e03b1ed14fc0a887e"><td class="mdescLeft"> </td><td class="mdescRight">Returns the vertical field of view (FoV) in radians. <br /></td></tr>
|
||
<tr class="separator:af4df41cc8a613f3e03b1ed14fc0a887e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a12abd4cac897f48bf862a96f0eba1d65" id="r_a12abd4cac897f48bf862a96f0eba1d65"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a12abd4cac897f48bf862a96f0eba1d65">horizontalFOV</a> () const</td></tr>
|
||
<tr class="memdesc:a12abd4cac897f48bf862a96f0eba1d65"><td class="mdescLeft"> </td><td class="mdescRight">Returns the horizontal field of view in degrees. <br /></td></tr>
|
||
<tr class="separator:a12abd4cac897f48bf862a96f0eba1d65"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:af6226e43afcb69259b137bbe50099537" id="r_af6226e43afcb69259b137bbe50099537"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#af6226e43afcb69259b137bbe50099537">verticalFOV</a> () const</td></tr>
|
||
<tr class="memdesc:af6226e43afcb69259b137bbe50099537"><td class="mdescLeft"> </td><td class="mdescRight">Returns the vertical field of view in degrees. <br /></td></tr>
|
||
<tr class="separator:af6226e43afcb69259b137bbe50099537"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3ceb0d36d8786f03b778d1969cb6e839" id="r_a3ceb0d36d8786f03b778d1969cb6e839"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a3ceb0d36d8786f03b778d1969cb6e839">isFisheye</a> () const</td></tr>
|
||
<tr class="memdesc:a3ceb0d36d8786f03b778d1969cb6e839"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the distortion model is fisheye (6 coefficients: k1,k2,0,0,k3,k4). <br /></td></tr>
|
||
<tr class="separator:a3ceb0d36d8786f03b778d1969cb6e839"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2c2ff6db9029c3ee219642d7e48b04fa" id="r_a2c2ff6db9029c3ee219642d7e48b04fa"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a2c2ff6db9029c3ee219642d7e48b04fa">load</a> (const std::string &filePath, bool initRectificationMaps=true)</td></tr>
|
||
<tr class="memdesc:a2c2ff6db9029c3ee219642d7e48b04fa"><td class="mdescLeft"> </td><td class="mdescRight">Loads the camera model parameters from a YAML calibration file. <br /></td></tr>
|
||
<tr class="separator:a2c2ff6db9029c3ee219642d7e48b04fa"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:abe9b3c87c086fd33286c01361e454056" id="r_abe9b3c87c086fd33286c01361e454056"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#abe9b3c87c086fd33286c01361e454056">load</a> (const std::string &directory, const std::string &cameraName, bool initRectificationMaps=true)</td></tr>
|
||
<tr class="memdesc:abe9b3c87c086fd33286c01361e454056"><td class="mdescLeft"> </td><td class="mdescRight">Loads the camera model by constructing a file path from a directory and camera name. <br /></td></tr>
|
||
<tr class="separator:abe9b3c87c086fd33286c01361e454056"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ab5ec6010459c4e642e162dc8914bccb9" id="r_ab5ec6010459c4e642e162dc8914bccb9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#ab5ec6010459c4e642e162dc8914bccb9">save</a> (const std::string &directory) const</td></tr>
|
||
<tr class="memdesc:ab5ec6010459c4e642e162dc8914bccb9"><td class="mdescLeft"> </td><td class="mdescRight">Saves the camera model parameters to a YAML calibration file in ROS format. <br /></td></tr>
|
||
<tr class="separator:ab5ec6010459c4e642e162dc8914bccb9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5724619c7ac8c796fd8c63660e398082" id="r_a5724619c7ac8c796fd8c63660e398082"><td class="memItemLeft" align="right" valign="top">std::vector< unsigned char > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082">serialize</a> () const</td></tr>
|
||
<tr class="memdesc:a5724619c7ac8c796fd8c63660e398082"><td class="mdescLeft"> </td><td class="mdescRight">Serializes the camera model to a binary format. <br /></td></tr>
|
||
<tr class="separator:a5724619c7ac8c796fd8c63660e398082"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a490dc97ca8aa55d96324eb6612ccfd30" id="r_a490dc97ca8aa55d96324eb6612ccfd30"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a490dc97ca8aa55d96324eb6612ccfd30">deserialize</a> (const std::vector< unsigned char > &data)</td></tr>
|
||
<tr class="memdesc:a490dc97ca8aa55d96324eb6612ccfd30"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes a camera model from a byte vector. <br /></td></tr>
|
||
<tr class="separator:a490dc97ca8aa55d96324eb6612ccfd30"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a181c2e53da1151c281d85fde986a29c5" id="r_a181c2e53da1151c281d85fde986a29c5"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a181c2e53da1151c281d85fde986a29c5">deserialize</a> (const unsigned char *data, unsigned int dataSize)</td></tr>
|
||
<tr class="memdesc:a181c2e53da1151c281d85fde986a29c5"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes a camera model from a raw byte buffer. <br /></td></tr>
|
||
<tr class="separator:a181c2e53da1151c281d85fde986a29c5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aecf2e87f260558dbf631e4803e1ed986" id="r_aecf2e87f260558dbf631e4803e1ed986"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aecf2e87f260558dbf631e4803e1ed986">scaled</a> (double scale) const</td></tr>
|
||
<tr class="memdesc:aecf2e87f260558dbf631e4803e1ed986"><td class="mdescLeft"> </td><td class="mdescRight">Returns a new camera model with all intrinsic parameters scaled by a given factor. <br /></td></tr>
|
||
<tr class="separator:aecf2e87f260558dbf631e4803e1ed986"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2ff3290299c36b64ee880db2386f898f" id="r_a2ff3290299c36b64ee880db2386f898f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a2ff3290299c36b64ee880db2386f898f">roi</a> (const cv::Rect &roi) const</td></tr>
|
||
<tr class="memdesc:a2ff3290299c36b64ee880db2386f898f"><td class="mdescLeft"> </td><td class="mdescRight">Returns a new camera model adjusted for a given region of interest (ROI). <br /></td></tr>
|
||
<tr class="separator:a2ff3290299c36b64ee880db2386f898f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a17219cf5cf82d224f2a7ed5af01fa236" id="r_a17219cf5cf82d224f2a7ed5af01fa236"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a17219cf5cf82d224f2a7ed5af01fa236">rectifyImage</a> (const cv::Mat &raw, int interpolation=cv::INTER_LINEAR) const</td></tr>
|
||
<tr class="memdesc:a17219cf5cf82d224f2a7ed5af01fa236"><td class="mdescLeft"> </td><td class="mdescRight">Rectifies a raw image using the precomputed rectification maps. <br /></td></tr>
|
||
<tr class="separator:a17219cf5cf82d224f2a7ed5af01fa236"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a22cf7f5b49ef0cd8be08755010f6acb5" id="r_a22cf7f5b49ef0cd8be08755010f6acb5"><td class="memItemLeft" align="right" valign="top">cv::Mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a22cf7f5b49ef0cd8be08755010f6acb5">rectifyDepth</a> (const cv::Mat &raw) const</td></tr>
|
||
<tr class="memdesc:a22cf7f5b49ef0cd8be08755010f6acb5"><td class="mdescLeft"> </td><td class="mdescRight">Rectifies a raw depth image using the precomputed rectification maps. <br /></td></tr>
|
||
<tr class="separator:a22cf7f5b49ef0cd8be08755010f6acb5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a01de9a3cdc993275b2fbcf21d6e29833" id="r_a01de9a3cdc993275b2fbcf21d6e29833"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a01de9a3cdc993275b2fbcf21d6e29833">project</a> (float u, float v, float depth, float &x, float &y, float &z) const</td></tr>
|
||
<tr class="memdesc:a01de9a3cdc993275b2fbcf21d6e29833"><td class="mdescLeft"> </td><td class="mdescRight">Projects a 2D pixel and depth value into a 3D point in the camera coordinate frame (/camera_link). <br /></td></tr>
|
||
<tr class="separator:a01de9a3cdc993275b2fbcf21d6e29833"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a637a730717e42939449cd9f09e20db26" id="r_a637a730717e42939449cd9f09e20db26"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a637a730717e42939449cd9f09e20db26">reproject</a> (float x, float y, float z, float &u, float &v) const</td></tr>
|
||
<tr class="memdesc:a637a730717e42939449cd9f09e20db26"><td class="mdescLeft"> </td><td class="mdescRight">Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point). <br /></td></tr>
|
||
<tr class="separator:a637a730717e42939449cd9f09e20db26"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a99204ef1a884478cf45b1503432b235b" id="r_a99204ef1a884478cf45b1503432b235b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a99204ef1a884478cf45b1503432b235b">reproject</a> (float x, float y, float z, int &u, int &v) const</td></tr>
|
||
<tr class="memdesc:a99204ef1a884478cf45b1503432b235b"><td class="mdescLeft"> </td><td class="mdescRight">Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (rounded to int). <br /></td></tr>
|
||
<tr class="separator:a99204ef1a884478cf45b1503432b235b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aa07cbe07c7893e726c408392cf54d9ca" id="r_aa07cbe07c7893e726c408392cf54d9ca"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#aa07cbe07c7893e726c408392cf54d9ca">inFrame</a> (int u, int v) const</td></tr>
|
||
<tr class="memdesc:aa07cbe07c7893e726c408392cf54d9ca"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a given pixel coordinate lies within the image bounds. <br /></td></tr>
|
||
<tr class="separator:aa07cbe07c7893e726c408392cf54d9ca"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
|
||
Static Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:a0853af9d0117565311da4ffc3965f8d2" id="r_a0853af9d0117565311da4ffc3965f8d2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a> ()</td></tr>
|
||
<tr class="memdesc:a0853af9d0117565311da4ffc3965f8d2"><td class="mdescLeft"> </td><td class="mdescRight">Returns the default optical rotation to convert image coordinates to robot coordinates. <br /></td></tr>
|
||
<tr class="separator:a0853af9d0117565311da4ffc3965f8d2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock"><p>Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection, rectification, and transformation. </p>
|
||
<p>This class encapsulates camera calibration data, including intrinsic parameters (fx, fy, cx, cy), distortion coefficients, rectification and projection matrices. It provides utility functions for image rectification, projection from 2D to 3D, and vice versa.</p>
|
||
<p>This class supports the 4 to 14 parameters Radial Tangential distortion model (also called Plumb Bob or Brown-Conrady model) and 4 parameters Fish Eye model (also known as Equidistant model).</p>
|
||
<dl class="section see"><dt>See also</dt><dd>OpenCV's calib3d module for all supported camera models. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00052">52</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="a4810e60f3af95b73a61879aa97201695" name="a4810e60f3af95b73a61879aa97201695"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4810e60f3af95b73a61879aa97201695">◆ </a></span>CameraModel() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">rtabmap::CameraModel::CameraModel </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>name</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Size & </td>
|
||
<td class="paramname"><em>imageSize</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>K</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>D</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>R</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>P</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
||
<td class="paramname"><em>localTransform</em> = <code><a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a>()</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Constructor using full camera parameters. </p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">name</td><td><a class="el" href="classrtabmap_1_1Camera.html">Camera</a> name or ID. </td></tr>
|
||
<tr><td class="paramname">imageSize</td><td>Size of the image (width x height). </td></tr>
|
||
<tr><td class="paramname">K</td><td>Intrinsic matrix (3x3). </td></tr>
|
||
<tr><td class="paramname">D</td><td>Distortion coefficients, 1xN matrix where N is between 4 and 14 parameters: k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,tx,ty]]]]). To set Fish Eye / Equidistant model, it is implicitly used if we provide 6 values like this: [k1,k2,0,0,k3,k4], where you only need to fill "k" parameters. </td></tr>
|
||
<tr><td class="paramname">R</td><td>Rectification matrix (3x3). </td></tr>
|
||
<tr><td class="paramname">P</td><td>Projection matrix (3x4). </td></tr>
|
||
<tr><td class="paramname">localTransform</td><td>Local transform to apply to the camera frame. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aadb6b19ea8a94f3f6719ea0233196c34" name="aadb6b19ea8a94f3f6719ea0233196c34"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aadb6b19ea8a94f3f6719ea0233196c34">◆ </a></span>CameraModel() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">rtabmap::CameraModel::CameraModel </td>
|
||
<td>(</td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>fx</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>fy</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>cx</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>cy</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
||
<td class="paramname"><em>localTransform</em> = <code><a class="el" href="classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2">opticalRotation</a>()</code>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>Tx</em> = <code>0.0f</code>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const cv::Size & </td>
|
||
<td class="paramname"><em>imageSize</em> = <code>cv::Size(0, 0)</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Minimal constructor using intrinsic parameters. This assumes the images are already rectified. </p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">fx</td><td>Focal length x. </td></tr>
|
||
<tr><td class="paramname">fy</td><td>Focal length y. </td></tr>
|
||
<tr><td class="paramname">cx</td><td>Principal point x. </td></tr>
|
||
<tr><td class="paramname">cy</td><td>Principal point y. </td></tr>
|
||
<tr><td class="paramname">localTransform</td><td>Local transform to apply to the camera frame. </td></tr>
|
||
<tr><td class="paramname">Tx</td><td>Baseline * fx (optional). Mainly used in case of stereo pair. </td></tr>
|
||
<tr><td class="paramname">imageSize</td><td>Image size (optional). </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="af6f35e5071ef0070d3fae3ebaa33ce4c" name="af6f35e5071ef0070d3fae3ebaa33ce4c"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#af6f35e5071ef0070d3fae3ebaa33ce4c">◆ </a></span>~CameraModel()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">virtual rtabmap::CameraModel::~CameraModel </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Destructor. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00128">128</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="a0853af9d0117565311da4ffc3965f8d2" name="a0853af9d0117565311da4ffc3965f8d2"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a0853af9d0117565311da4ffc3965f8d2">◆ </a></span>opticalRotation()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> rtabmap::CameraModel::opticalRotation </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the default optical rotation to convert image coordinates to robot coordinates. </p>
|
||
<p>Image frame: x -> right, y -> down, z -> forward <br />
|
||
Robot frame: x -> forward, y -> left, z -> up</p>
|
||
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> rotation matrix. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00063">63</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5690a86d11b0d84e80961ae5d38b1d25" name="a5690a86d11b0d84e80961ae5d38b1d25"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5690a86d11b0d84e80961ae5d38b1d25">◆ </a></span>initRectificationMap()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::initRectificationMap </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Initializes the rectification maps used to undistort and rectify images. </p>
|
||
<p>This function prepares the <code>mapX_</code> and <code>mapY_</code> lookup tables used for image rectification. It supports both standard radial-tangential distortion and fisheye/equidistant distortion models.</p>
|
||
<ul>
|
||
<li>If the distortion model is <b>fisheye</b> (indicated by <code>D_.cols == 6</code>), it uses <code>cv::fisheye::initUndistortRectifyMap()</code> to create the rectification maps. This requires OpenCV ≥ 2.4.10.</li>
|
||
<li>Otherwise, it uses the standard <code>cv::initUndistortRectifyMap()</code> for plumb bob or rational polynomial models.</li>
|
||
</ul>
|
||
<dl class="section pre"><dt>Precondition</dt><dd>The camera model must be valid for rectification:<ul>
|
||
<li><code>imageSize_</code> must be non-zero.</li>
|
||
<li><code>D_</code> must be a 1-row matrix with an accepted number of columns (4, 5, 6, 8, 12, or 14).</li>
|
||
<li><code>R_</code> must be a 3x3 rectification matrix.</li>
|
||
<li><code>P_</code> must be a 3x4 projection matrix.</li>
|
||
</ul>
|
||
</dd></dl>
|
||
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the rectification maps were successfully initialized (<code>mapX_</code> and <code>mapY_</code> are not empty), <code>false</code> otherwise.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a80cacb16d347e89980369cb2e02f3d48" title="Checks if the rectification map has been initialized.">isRectificationMapInitialized()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a17219cf5cf82d224f2a7ed5af01fa236" title="Rectifies a raw image using the precomputed rectification maps.">rectifyImage()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a22cf7f5b49ef0cd8be08755010f6acb5" title="Rectifies a raw depth image using the precomputed rectification maps.">rectifyDepth()</a></dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Requires OpenCV 2.4.10 or newer for fisheye support. If the version is older, fisheye rectification will not work. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a80cacb16d347e89980369cb2e02f3d48" name="a80cacb16d347e89980369cb2e02f3d48"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a80cacb16d347e89980369cb2e02f3d48">◆ </a></span>isRectificationMapInitialized()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::isRectificationMapInitialized </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if the rectification map has been initialized. </p>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if both mapX_ and mapY_ are initialized. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00159">159</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7b6db41415e085d52bf363d09d5e6d67" name="a7b6db41415e085d52bf363d09d5e6d67"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7b6db41415e085d52bf363d09d5e6d67">◆ </a></span>isValidForProjection()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::isValidForProjection </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if the model is valid for 2D->3D projection. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00164">164</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="abd4db4f23eb05d531a34ee44f7cdb687" name="abd4db4f23eb05d531a34ee44f7cdb687"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#abd4db4f23eb05d531a34ee44f7cdb687">◆ </a></span>isValidForReprojection()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::isValidForReprojection </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if the model is valid for 3D->2D reprojection. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00168">168</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a46864eb8de680d45d79777e828dcbb6a" name="a46864eb8de680d45d79777e828dcbb6a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a46864eb8de680d45d79777e828dcbb6a">◆ </a></span>isValidForRectification()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::isValidForRectification </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if the model has sufficient data for image rectification. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00172">172</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a402a407fa2bca721087a6deda24cc10d" name="a402a407fa2bca721087a6deda24cc10d"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a402a407fa2bca721087a6deda24cc10d">◆ </a></span>setName()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::setName </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>name</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Sets the camera name, used to set a camera name when saving to a file. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00183">183</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aa152828f20e1cf0ffab7bb25178191b5" name="aa152828f20e1cf0ffab7bb25178191b5"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aa152828f20e1cf0ffab7bb25178191b5">◆ </a></span>name()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const std::string & rtabmap::CameraModel::name </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the camera name. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00185">185</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acea616d4e141804dbc5c6eda58bebf6b" name="acea616d4e141804dbc5c6eda58bebf6b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acea616d4e141804dbc5c6eda58bebf6b">◆ </a></span>fx()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::fx </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns focal length in x. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00188">188</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac4089d34947b040205e281edae4151a1" name="ac4089d34947b040205e281edae4151a1"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac4089d34947b040205e281edae4151a1">◆ </a></span>fy()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::fy </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns focal length in y. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00190">190</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="af81ee9572d32f69bf0a66cd1f4671c20" name="af81ee9572d32f69bf0a66cd1f4671c20"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#af81ee9572d32f69bf0a66cd1f4671c20">◆ </a></span>cx()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::cx </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns principal point x. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00192">192</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aa3a18f811d3e9db290d01371e078add3" name="aa3a18f811d3e9db290d01371e078add3"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aa3a18f811d3e9db290d01371e078add3">◆ </a></span>cy()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::cy </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns principal point y. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00194">194</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a6f6dc18af13a777e89a75725ef3e8ab4" name="a6f6dc18af13a777e89a75725ef3e8ab4"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a6f6dc18af13a777e89a75725ef3e8ab4">◆ </a></span>Tx()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::Tx </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the x translation (usually fx * baseline in case of stereo, otherwise would be 0). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00196">196</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ada626650b01d35b494016a5490efb31a" name="ada626650b01d35b494016a5490efb31a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ada626650b01d35b494016a5490efb31a">◆ </a></span>K_raw()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::K_raw </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the raw intrinsic matrix (before rectification). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00199">199</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a88ec7053f4d442c4b1b79803c2840f28" name="a88ec7053f4d442c4b1b79803c2840f28"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a88ec7053f4d442c4b1b79803c2840f28">◆ </a></span>D_raw()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::D_raw </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the raw distortion coefficients (before rectification). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00201">201</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5df2e6c3f361b7084e4d26d7f1846e3d" name="a5df2e6c3f361b7084e4d26d7f1846e3d"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5df2e6c3f361b7084e4d26d7f1846e3d">◆ </a></span>K()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::K </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the rectified camera intrinsic matrix if the projection matrix P exists, otherwise returns the raw intrinsic matrix. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00203">203</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4aa121905a9b2aabb6a3592a6eb7459a" name="a4aa121905a9b2aabb6a3592a6eb7459a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4aa121905a9b2aabb6a3592a6eb7459a">◆ </a></span>D()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::D </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the rectified distortion coefficients (1x5 filled with zeros) if the projection matrix P exists, otherwise returns the raw distortion coefficients. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00205">205</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad763246258ddf02c27873c2536901781" name="ad763246258ddf02c27873c2536901781"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad763246258ddf02c27873c2536901781">◆ </a></span>R()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::R </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the rectification matrix. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00207">207</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acda5d9c4eeeaaad69e950f5ea630430a" name="acda5d9c4eeeaaad69e950f5ea630430a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acda5d9c4eeeaaad69e950f5ea630430a">◆ </a></span>P()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::P </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the projection matrix. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00209">209</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aa1325c971f17d371553c3f75be7aeece" name="aa1325c971f17d371553c3f75be7aeece"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aa1325c971f17d371553c3f75be7aeece">◆ </a></span>setLocalTransform()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::setLocalTransform </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
||
<td class="paramname"><em>transform</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Sets the local transform of the camera (base frame to optical frame). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00212">212</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a8a1712ca95bf08c71b2bf2da1d635bc8" name="a8a1712ca95bf08c71b2bf2da1d635bc8"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8a1712ca95bf08c71b2bf2da1d635bc8">◆ </a></span>localTransform()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & rtabmap::CameraModel::localTransform </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the local transform (base frame to optical frame). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00214">214</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a43fd48b917ca145876024859f8565931" name="a43fd48b917ca145876024859f8565931"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a43fd48b917ca145876024859f8565931">◆ </a></span>setImageSize()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::setImageSize </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const cv::Size & </td>
|
||
<td class="paramname"><em>size</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Sets the image size of the camera model and updates the principal point if undefined. </p>
|
||
<p>This function updates the internal image size (<code>imageSize_</code>) with the provided size. If the intrinsic matrices (<code>K_</code> or <code>P_</code>) are present and the principal point coordinates (<code>cx</code>, <code>cy</code>) are zero, they are set to the image center (<code>width/2 - 0.5</code>, <code>height/2 - 0.5</code>).</p>
|
||
<p>This ensures the camera model remains valid and useful even when the calibration file has no principal point set or the image size is updated manually.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">size</td><td>The new image size. It must be either both dimensions zero (clearing) or both positive.</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section pre"><dt>Precondition</dt><dd><code>size.width > 0 && size.height > 0</code> or <code>size.width == 0 && size.height == 0</code> </dd></dl>
|
||
<dl class="section post"><dt>Postcondition</dt><dd>Updates the <code>imageSize_</code>, and adjusts <code>cx</code> and <code>cy</code> in <code>K_</code> and <code>P_</code> if they were initially zero.</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>If <code>K_</code> or <code>P_</code> are not initialized (<code>empty()</code>), no updates will be applied to them.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd>imageSize(), imageWidth(), imageHeight() </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7cf97039fa39ad03e3910a434b9acd93" name="a7cf97039fa39ad03e3910a434b9acd93"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7cf97039fa39ad03e3910a434b9acd93">◆ </a></span>imageSize()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const cv::Size & rtabmap::CameraModel::imageSize </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00236">236</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a6983cc1325c9e1c37d957470df7fbf9b" name="a6983cc1325c9e1c37d957470df7fbf9b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a6983cc1325c9e1c37d957470df7fbf9b">◆ </a></span>imageWidth()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int rtabmap::CameraModel::imageWidth </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00237">237</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae8a8e26a9aa0469fa8c5a7f3b7827df9" name="ae8a8e26a9aa0469fa8c5a7f3b7827df9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae8a8e26a9aa0469fa8c5a7f3b7827df9">◆ </a></span>imageHeight()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int rtabmap::CameraModel::imageHeight </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00238">238</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac3aa6835f8ae019de4dbf85eed849b75" name="ac3aa6835f8ae019de4dbf85eed849b75"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac3aa6835f8ae019de4dbf85eed849b75">◆ </a></span>fovX()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::fovX </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the horizontal field of view (FoV) in radians. </p>
|
||
<p>The FoV is computed using the pinhole camera model as: </p><p class="formulaDsp">
|
||
<img class="formulaDsp" alt="\[
|
||
\text{FoV}_x = 2 \cdot \tan^{-1}\left(\frac{\text{image width}}{2 \cdot f_x}\right)
|
||
\]" src="form_0.png"/>
|
||
</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Horizontal field of view in radians. Returns 0.0 if image width or focal length is invalid. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="af4df41cc8a613f3e03b1ed14fc0a887e" name="af4df41cc8a613f3e03b1ed14fc0a887e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#af4df41cc8a613f3e03b1ed14fc0a887e">◆ </a></span>fovY()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::fovY </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the vertical field of view (FoV) in radians. </p>
|
||
<p>The FoV is computed using the pinhole camera model as: </p><p class="formulaDsp">
|
||
<img class="formulaDsp" alt="\[
|
||
\text{FoV}_y = 2 \cdot \tan^{-1}\left(\frac{\text{image height}}{2 \cdot f_y}\right)
|
||
\]" src="form_1.png"/>
|
||
</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Vertical field of view in radians. Returns 0.0 if image height or focal length is invalid. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a12abd4cac897f48bf862a96f0eba1d65" name="a12abd4cac897f48bf862a96f0eba1d65"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a12abd4cac897f48bf862a96f0eba1d65">◆ </a></span>horizontalFOV()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::horizontalFOV </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the horizontal field of view in degrees. </p>
|
||
<p>Converts the result of <code><a class="el" href="classrtabmap_1_1CameraModel.html#ac3aa6835f8ae019de4dbf85eed849b75" title="Returns the horizontal field of view (FoV) in radians.">fovX()</a></code> from radians to degrees.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Horizontal field of view in degrees. Returns 0.0 if the result is invalid. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="af6226e43afcb69259b137bbe50099537" name="af6226e43afcb69259b137bbe50099537"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#af6226e43afcb69259b137bbe50099537">◆ </a></span>verticalFOV()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">double rtabmap::CameraModel::verticalFOV </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the vertical field of view in degrees. </p>
|
||
<p>Converts the result of <code><a class="el" href="classrtabmap_1_1CameraModel.html#af4df41cc8a613f3e03b1ed14fc0a887e" title="Returns the vertical field of view (FoV) in radians.">fovY()</a></code> from radians to degrees.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Vertical field of view in degrees. Returns 0.0 if the result is invalid. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a3ceb0d36d8786f03b778d1969cb6e839" name="a3ceb0d36d8786f03b778d1969cb6e839"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a3ceb0d36d8786f03b778d1969cb6e839">◆ </a></span>isFisheye()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::isFisheye </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if the distortion model is fisheye (6 coefficients: k1,k2,0,0,k3,k4). </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="CameraModel_8h_source.html#l00283">283</a> of file <a class="el" href="CameraModel_8h_source.html">CameraModel.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2c2ff6db9029c3ee219642d7e48b04fa" name="a2c2ff6db9029c3ee219642d7e48b04fa"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2c2ff6db9029c3ee219642d7e48b04fa">◆ </a></span>load() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::load </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>filePath</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">bool </td>
|
||
<td class="paramname"><em>initRectificationMaps</em> = <code>true</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Loads the camera model parameters from a YAML calibration file. </p>
|
||
<p>This method attempts to read camera intrinsic/extrinsic parameters and image size from a YAML file, typically in the ROS calibration format. If the distortion model is "fisheye" or "equidistant", we expect 4 coefficients, which are converted to a 6-coefficient format for internal representation.</p>
|
||
<p>Fields loaded (if present): <br />
|
||
</p><ul>
|
||
<li><code>camera_name</code> <br />
|
||
</li>
|
||
<li><code>image_width</code> (pixels)</li>
|
||
<li><code>image_height</code> (pixels)</li>
|
||
<li><code>camera_matrix</code> (K, 3x3 double matrix) <br />
|
||
</li>
|
||
<li><code>distortion_coefficients</code> (D, 1xN double matrix) <br />
|
||
</li>
|
||
<li><code>distortion_model</code> (string: name of the model)</li>
|
||
<li><code>rectification_matrix</code> (R, 3x3 double matrix) <br />
|
||
</li>
|
||
<li><code>projection_matrix</code> (P, 3x4 double matrix) <br />
|
||
</li>
|
||
<li><code>local_transform</code> (camera pose w.r.t robot frame)</li>
|
||
</ul>
|
||
<p>On success, the internal matrices and settings of the camera model are updated. If the model is valid for rectification, the rectification map is initialized.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">filePath</td><td>Absolute or relative path to the YAML file. </td></tr>
|
||
<tr><td class="paramname">initRectificationMaps</td><td>Set to false to skip building the (potentially large) rectification maps when rectification won't be used (saves time and memory). </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if the file was successfully loaded and parsed, false otherwise.</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Logs warnings if any fields are missing. If file does not exist or parsing fails, returns false.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25" title="Initializes the rectification maps used to undistort and rectify images.">initRectificationMap()</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="abe9b3c87c086fd33286c01361e454056" name="abe9b3c87c086fd33286c01361e454056"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#abe9b3c87c086fd33286c01361e454056">◆ </a></span>load() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::load </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>directory</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>cameraName</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">bool </td>
|
||
<td class="paramname"><em>initRectificationMaps</em> = <code>true</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Loads the camera model by constructing a file path from a directory and camera name. </p>
|
||
<p>This is a convenience wrapper around <code>load(filePath)</code> that constructs the file path as: <code>directory + "/" + cameraName + ".yaml"</code>.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">directory</td><td>Path to the folder containing the camera YAML file. </td></tr>
|
||
<tr><td class="paramname">cameraName</td><td>Base name of the camera file (without extension). </td></tr>
|
||
<tr><td class="paramname">initRectificationMaps</td><td>Set to false to skip building the (potentially large) rectification maps when rectification won't be used (saves time and memory). </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if loading from the constructed path succeeds, false otherwise. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ab5ec6010459c4e642e162dc8914bccb9" name="ab5ec6010459c4e642e162dc8914bccb9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ab5ec6010459c4e642e162dc8914bccb9">◆ </a></span>save()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::save </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string & </td>
|
||
<td class="paramname"><em>directory</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Saves the camera model parameters to a YAML calibration file in ROS format. </p>
|
||
<p>The file will include the following fields if they are not empty:</p><ul>
|
||
<li><code>camera_name</code></li>
|
||
<li><code>image_width</code></li>
|
||
<li><code>image_height</code></li>
|
||
<li><code>camera_matrix</code> (K)</li>
|
||
<li><code>distortion_coefficients</code> (D)</li>
|
||
<li><code>distortion_model</code> (auto-detected based on number of distortion coefficients)</li>
|
||
<li><code>rectification_matrix</code> (R)</li>
|
||
<li><code>projection_matrix</code> (P)</li>
|
||
<li><code>local_transform</code> (camera pose w.r.t robot frame)</li>
|
||
</ul>
|
||
<p>If the distortion matrix contains 6 coefficients (used for fisheye), it is converted to a standard 4-coefficient format for ROS compatibility.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">directory</td><td>Path to the folder where the YAML file will be saved. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if saving was successful, false otherwise.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>If <code>name_</code> is empty, "camera.yaml" is used as the default filename. </dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Returns false and logs an error if none of the matrices are set. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5724619c7ac8c796fd8c63660e398082" name="a5724619c7ac8c796fd8c63660e398082"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5724619c7ac8c796fd8c63660e398082">◆ </a></span>serialize()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector< unsigned char > rtabmap::CameraModel::serialize </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Serializes the camera model to a binary format. </p>
|
||
<p>The serialization includes the camera intrinsics (<code>K_</code>, <code>D_</code>), rectification matrix (<code>R_</code>), projection matrix (<code>P_</code>), image size, and the local transform. The format is compact and suitable for file storage or transmission over a network.</p>
|
||
<p>Data layout:</p><ul>
|
||
<li>Header (11 integers):<ul>
|
||
<li>[0-2] RTAB-Map version (major, minor, patch)</li>
|
||
<li>[3] <a class="el" href="classrtabmap_1_1Camera.html">Camera</a> type (0 = mono, 1=stereo)</li>
|
||
<li>[4-5] Image width, height</li>
|
||
<li>[6-9] Element counts for K, D, R, P matrices</li>
|
||
<li>[10] Size of localTransform (0 if null)</li>
|
||
</ul>
|
||
</li>
|
||
<li>Data section (in order): raw memory blocks for K, D, R, P (<code>double</code> values), followed by <code>float</code> values for localTransform</li>
|
||
</ul>
|
||
<dl class="section return"><dt>Returns</dt><dd>A byte vector containing the serialized data. The format is compatible with <code><a class="el" href="classrtabmap_1_1CameraModel.html#a490dc97ca8aa55d96324eb6612ccfd30" title="Deserializes a camera model from a byte vector.">deserialize()</a></code>.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This is a custom binary format, not meant to be human-readable. </dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a490dc97ca8aa55d96324eb6612ccfd30" title="Deserializes a camera model from a byte vector.">deserialize()</a>, <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a490dc97ca8aa55d96324eb6612ccfd30" name="a490dc97ca8aa55d96324eb6612ccfd30"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a490dc97ca8aa55d96324eb6612ccfd30">◆ </a></span>deserialize() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">unsigned int rtabmap::CameraModel::deserialize </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< unsigned char > & </td>
|
||
<td class="paramname"><em>data</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Deserializes a camera model from a byte vector. </p>
|
||
<p>This is a convenience wrapper around <code><a class="el" href="classrtabmap_1_1CameraModel.html#a181c2e53da1151c281d85fde986a29c5" title="Deserializes a camera model from a raw byte buffer.">deserialize(const unsigned char*, unsigned int)</a></code> that takes a <code>std::vector<unsigned char></code> instead of a raw buffer.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">data</td><td>Byte vector containing data serialized by <code><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082" title="Serializes the camera model to a binary format.">serialize()</a></code>. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>The number of bytes successfully read and parsed. Returns 0 on failure.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082" title="Serializes the camera model to a binary format.">serialize()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a181c2e53da1151c281d85fde986a29c5" title="Deserializes a camera model from a raw byte buffer.">deserialize(const unsigned char*, unsigned int)</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a181c2e53da1151c281d85fde986a29c5" name="a181c2e53da1151c281d85fde986a29c5"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a181c2e53da1151c281d85fde986a29c5">◆ </a></span>deserialize() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">unsigned int rtabmap::CameraModel::deserialize </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const unsigned char * </td>
|
||
<td class="paramname"><em>data</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">unsigned int </td>
|
||
<td class="paramname"><em>dataSize</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Deserializes a camera model from a raw byte buffer. </p>
|
||
<p>Reads the camera intrinsics, distortion, rectification, projection matrices, image size, and local transform from a serialized binary format previously created with <code><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082" title="Serializes the camera model to a binary format.">serialize()</a></code>.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">data</td><td>Pointer to the binary data buffer. </td></tr>
|
||
<tr><td class="paramname">dataSize</td><td>Size of the data buffer in bytes. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>The number of bytes successfully read. Returns 0 on error or if the format is invalid.</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>If the buffer format does not match the expected layout or version, an error is logged and the camera model remains in a default-initialized state.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>Assumes little-endian architecture and strict size/type matching. The serialized format must be created by <code><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082" title="Serializes the camera model to a binary format.">CameraModel::serialize()</a></code>. Non-mono camera types are not supported. See <code><a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a></code> to serialize/deserialize stereo models.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a5724619c7ac8c796fd8c63660e398082" title="Serializes the camera model to a binary format.">serialize()</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aecf2e87f260558dbf631e4803e1ed986" name="aecf2e87f260558dbf631e4803e1ed986"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aecf2e87f260558dbf631e4803e1ed986">◆ </a></span>scaled()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> rtabmap::CameraModel::scaled </td>
|
||
<td>(</td>
|
||
<td class="paramtype">double </td>
|
||
<td class="paramname"><em>scale</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns a new camera model with all intrinsic parameters scaled by a given factor. </p>
|
||
<p>This method scales the camera's intrinsic matrix (<code>K_</code>) and projection matrix (<code>P_</code>), as well as the image size, by the given <code>scale</code> factor. The distortion and rectification matrices are left unchanged.</p>
|
||
<p>Only valid camera models (i.e., those for which <code><a class="el" href="classrtabmap_1_1CameraModel.html#a7b6db41415e085d52bf363d09d5e6d67" title="Checks if the model is valid for 2D->3D projection.">isValidForProjection()</a></code> returns true) are scaled. If the model is invalid, a warning is issued and the original model is returned unchanged.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">scale</td><td>Scaling factor (> 0). For example, use 0.5 to downscale or 2.0 to upscale. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>A scaled copy of the camera model with updated intrinsics and image size.</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>If the camera model is not valid for projection, the scale operation is ignored. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2ff3290299c36b64ee880db2386f898f" name="a2ff3290299c36b64ee880db2386f898f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2ff3290299c36b64ee880db2386f898f">◆ </a></span>roi()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> rtabmap::CameraModel::roi </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const cv::Rect & </td>
|
||
<td class="paramname"><em>roi</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns a new camera model adjusted for a given region of interest (ROI). </p>
|
||
<p>This method shifts the principal point (<code>cx</code>, <code>cy</code>) in the intrinsic matrix (<code>K_</code>) and projection matrix (<code>P_</code>) by subtracting the ROI’s top-left <code>(x, y)</code> offset. The image size is also set to the ROI size.</p>
|
||
<p>Only valid camera models (i.e., those for which <code><a class="el" href="classrtabmap_1_1CameraModel.html#a7b6db41415e085d52bf363d09d5e6d67" title="Checks if the model is valid for 2D->3D projection.">isValidForProjection()</a></code> returns true) can be adjusted. If the model is invalid, a warning is issued and the original model is returned unchanged.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">roi</td><td>Region of interest defined as a rectangle (typically a subwindow of the full image). </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>A new camera model adapted to the ROI with adjusted intrinsics and image size.</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>If the camera model is not valid for projection, the ROI operation is ignored. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a17219cf5cf82d224f2a7ed5af01fa236" name="a17219cf5cf82d224f2a7ed5af01fa236"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a17219cf5cf82d224f2a7ed5af01fa236">◆ </a></span>rectifyImage()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::rectifyImage </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>raw</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>interpolation</em> = <code>cv::INTER_LINEAR</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Rectifies a raw image using the precomputed rectification maps. </p>
|
||
<p>This function applies geometric correction (rectification) to an image using the camera model's <code>mapX_</code> and <code>mapY_</code> rectification maps. It is typically used to correct lens distortion in images based on the calibration parameters.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">raw</td><td>Input raw image (e.g., from camera). Must be a valid <code>cv::Mat</code>. </td></tr>
|
||
<tr><td class="paramname">interpolation</td><td>Interpolation method to use. Typically <code>cv::INTER_LINEAR</code> or <code>cv::INTER_NEAREST</code>.</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>Rectified image. If the rectification maps are not initialized, the function logs an error and returns a clone of the original image.</dd></dl>
|
||
<dl class="section pre"><dt>Precondition</dt><dd><code>mapX_</code> and <code>mapY_</code> must be initialized using <code><a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25" title="Initializes the rectification maps used to undistort and rectify images.">initRectificationMap()</a></code>.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>Works for color and grayscale images of any valid type.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25" title="Initializes the rectification maps used to undistort and rectify images.">initRectificationMap()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a22cf7f5b49ef0cd8be08755010f6acb5" title="Rectifies a raw depth image using the precomputed rectification maps.">rectifyDepth()</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a22cf7f5b49ef0cd8be08755010f6acb5" name="a22cf7f5b49ef0cd8be08755010f6acb5"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a22cf7f5b49ef0cd8be08755010f6acb5">◆ </a></span>rectifyDepth()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">cv::Mat rtabmap::CameraModel::rectifyDepth </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const cv::Mat & </td>
|
||
<td class="paramname"><em>raw</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Rectifies a raw depth image using the precomputed rectification maps. </p>
|
||
<p>This function applies geometric correction (rectification) to a 16-bit unsigned depth image. It performs a pixel-by-pixel bilinear interpolation, only if all neighboring pixels have valid (non-zero) depth values, and the variation among them is within 1% of their average.</p>
|
||
<p>The method is optimized to avoid introducing noise in regions of high depth variance.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">raw</td><td>Input raw depth image (<code>CV_16UC1</code>). Must contain 16-bit unsigned depth values.</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>Rectified depth image. If the rectification maps are not initialized or the input image is not of type <code>CV_16UC1</code>, the function logs an error and returns a clone of the input.</dd></dl>
|
||
<dl class="section pre"><dt>Precondition</dt><dd>Input image must be of type <code>CV_16UC1</code>. <code>mapX_</code> and <code>mapY_</code> must be initialized.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>Inspired by the Kinect2 CPU depth registration implementation from: <a href="https://github.com/code-iai/iai_kinect2">https://github.com/code-iai/iai_kinect2</a></dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Invalid or noisy regions are skipped in interpolation to maintain depth consistency.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25" title="Initializes the rectification maps used to undistort and rectify images.">initRectificationMap()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a17219cf5cf82d224f2a7ed5af01fa236" title="Rectifies a raw image using the precomputed rectification maps.">rectifyImage()</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a01de9a3cdc993275b2fbcf21d6e29833" name="a01de9a3cdc993275b2fbcf21d6e29833"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a01de9a3cdc993275b2fbcf21d6e29833">◆ </a></span>project()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::project </td>
|
||
<td>(</td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>u</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>v</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>depth</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float & </td>
|
||
<td class="paramname"><em>x</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float & </td>
|
||
<td class="paramname"><em>y</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float & </td>
|
||
<td class="paramname"><em>z</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Projects a 2D pixel and depth value into a 3D point in the camera coordinate frame (/camera_link). </p>
|
||
<p>This function uses the camera's intrinsic parameters to compute the 3D point corresponding to the given 2D image coordinates and depth value.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramdir"></td><td class="paramname">u</td><td>Horizontal image coordinate (in pixels). </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">v</td><td>Vertical image coordinate (in pixels). </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">depth</td><td>Depth value at (u, v) in meters. </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">x</td><td>Output X coordinate in 3D space. </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Output Y coordinate in 3D space. </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">z</td><td>Output Z coordinate in 3D space (equals <code>depth</code>).</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section note"><dt>Note</dt><dd>If <code>depth <= 0</code>, the output (x, y, z) will be set to <code>NaN</code>.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a637a730717e42939449cd9f09e20db26" title="Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point).">reproject()</a> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a637a730717e42939449cd9f09e20db26" name="a637a730717e42939449cd9f09e20db26"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a637a730717e42939449cd9f09e20db26">◆ </a></span>reproject() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::reproject </td>
|
||
<td>(</td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>x</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>y</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>z</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float & </td>
|
||
<td class="paramname"><em>u</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float & </td>
|
||
<td class="paramname"><em>v</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point). </p>
|
||
<p>This function computes the image plane coordinates for a given 3D point using the camera's intrinsic parameters.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramdir"></td><td class="paramname">x</td><td>X coordinate in camera space. </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">y</td><td>Y coordinate in camera space. </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">z</td><td>Z coordinate in camera space (must be non-zero). </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">u</td><td>Output horizontal image coordinate (float). </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">v</td><td>Output vertical image coordinate (float).</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section pre"><dt>Precondition</dt><dd><code>z != 0</code></dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a01de9a3cdc993275b2fbcf21d6e29833" title="Projects a 2D pixel and depth value into a 3D point in the camera coordinate frame (/camera_link).">project()</a>, reproject(int&, int&) </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a99204ef1a884478cf45b1503432b235b" name="a99204ef1a884478cf45b1503432b235b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a99204ef1a884478cf45b1503432b235b">◆ </a></span>reproject() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void rtabmap::CameraModel::reproject </td>
|
||
<td>(</td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>x</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>y</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">float </td>
|
||
<td class="paramname"><em>z</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int & </td>
|
||
<td class="paramname"><em>u</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int & </td>
|
||
<td class="paramname"><em>v</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (rounded to int). </p>
|
||
<p>This version of <code><a class="el" href="classrtabmap_1_1CameraModel.html#a637a730717e42939449cd9f09e20db26" title="Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point).">reproject()</a></code> returns integer pixel indices, computed from the 3D position.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramdir"></td><td class="paramname">x</td><td>X coordinate in camera space. </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">y</td><td>Y coordinate in camera space. </td></tr>
|
||
<tr><td class="paramdir"></td><td class="paramname">z</td><td>Z coordinate in camera space (must be non-zero). </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">u</td><td>Output horizontal image coordinate (integer pixel). </td></tr>
|
||
<tr><td class="paramdir">[out]</td><td class="paramname">v</td><td>Output vertical image coordinate (integer pixel).</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section pre"><dt>Precondition</dt><dd><code>z != 0</code></dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html#a01de9a3cdc993275b2fbcf21d6e29833" title="Projects a 2D pixel and depth value into a 3D point in the camera coordinate frame (/camera_link).">project()</a>, reproject(float&, float&) </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aa07cbe07c7893e726c408392cf54d9ca" name="aa07cbe07c7893e726c408392cf54d9ca"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aa07cbe07c7893e726c408392cf54d9ca">◆ </a></span>inFrame()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool rtabmap::CameraModel::inFrame </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>u</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>v</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Checks if a given pixel coordinate lies within the image bounds. </p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">u</td><td>Horizontal image coordinate (in pixels). </td></tr>
|
||
<tr><td class="paramname">v</td><td>Vertical image coordinate (in pixels). </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the pixel is within the image dimensions, <code>false</code> otherwise.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>Inclusive lower bound, exclusive upper bound: <code>[0, width)</code>, <code>[0, height)</code> </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||
<li>corelib/include/rtabmap/core/<a class="el" href="CameraModel_8h_source.html">CameraModel.h</a></li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
<!-- start footer part -->
|
||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="namespacertabmap.html">rtabmap</a></li><li class="navelem"><a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a></li>
|
||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html>
|