mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
1862 lines
113 KiB
HTML
1862 lines
113 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::StereoCameraModel 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.12</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_1StereoCameraModel.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="classrtabmap_1_1StereoCameraModel-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">rtabmap::StereoCameraModel Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>A class representing a calibrated stereo camera system.
|
|
<a href="classrtabmap_1_1StereoCameraModel.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.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:a179ffcbc49ff3a281ef33cb4381e061c" id="r_a179ffcbc49ff3a281ef33cb4381e061c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a179ffcbc49ff3a281ef33cb4381e061c">StereoCameraModel</a> ()</td></tr>
|
|
<tr class="memdesc:a179ffcbc49ff3a281ef33cb4381e061c"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. Creates an empty stereo model with default suffixes ("left", "right"). <br /></td></tr>
|
|
<tr class="separator:a179ffcbc49ff3a281ef33cb4381e061c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1887639053ef5c09c3f650b5a7f280d8" id="r_a1887639053ef5c09c3f650b5a7f280d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1887639053ef5c09c3f650b5a7f280d8">StereoCameraModel</a> (const std::string &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a>, const cv::Size &imageSize1, const cv::Mat &K1, const cv::Mat &D1, const cv::Mat &R1, const cv::Mat &P1, const cv::Size &imageSize2, const cv::Mat &K2, const cv::Mat &D2, const cv::Mat &R2, const cv::Mat &P2, const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7afd347afb3909a2039f154b3a048035">R</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a82d60ddca8d0cdbe939b043ed02334b6">T</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8ab6c698248837e4dcfe36c2e7b02546">E</a>, const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1e4ffc9baa8dfee0a79ea32bac9b7c1c">F</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a5257cde3d51bbee7c51c3f36d0c7741f">localTransform</a>=<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0))</td></tr>
|
|
<tr class="memdesc:a1887639053ef5c09c3f650b5a7f280d8"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from detailed intrinsic and extrinsic parameters for both cameras. <br /></td></tr>
|
|
<tr class="separator:a1887639053ef5c09c3f650b5a7f280d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae91c2717319f3cd7b6f40768e5adbb9f" id="r_ae91c2717319f3cd7b6f40768e5adbb9f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae91c2717319f3cd7b6f40768e5adbb9f">StereoCameraModel</a> (const std::string &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a>, const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> &leftCameraModel, const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> &rightCameraModel, const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7afd347afb3909a2039f154b3a048035">R</a>=cv::Mat(), const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a82d60ddca8d0cdbe939b043ed02334b6">T</a>=cv::Mat(), const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8ab6c698248837e4dcfe36c2e7b02546">E</a>=cv::Mat(), const cv::Mat &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1e4ffc9baa8dfee0a79ea32bac9b7c1c">F</a>=cv::Mat())</td></tr>
|
|
<tr class="memdesc:ae91c2717319f3cd7b6f40768e5adbb9f"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from two individual camera models and optional stereo extrinsic parameters. <br /></td></tr>
|
|
<tr class="separator:ae91c2717319f3cd7b6f40768e5adbb9f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a76bab07a51033de989fc522064ede024" id="r_a76bab07a51033de989fc522064ede024"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a76bab07a51033de989fc522064ede024">StereoCameraModel</a> (const std::string &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a>, const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> &leftCameraModel, const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> &rightCameraModel, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &extrinsics)</td></tr>
|
|
<tr class="memdesc:a76bab07a51033de989fc522064ede024"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from two camera models and an extrinsic <a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> between them. <br /></td></tr>
|
|
<tr class="separator:a76bab07a51033de989fc522064ede024"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0bdbbaa6e3ab315b0c5fce03247cea6c" id="r_a0bdbbaa6e3ab315b0c5fce03247cea6c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a0bdbbaa6e3ab315b0c5fce03247cea6c">StereoCameraModel</a> (double fx, double fy, double cx, double cy, double <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8dc48f95fcf68eb81da96941f778535f">baseline</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a5257cde3d51bbee7c51c3f36d0c7741f">localTransform</a>=<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0), const cv::Size &imageSize=cv::Size(0, 0))</td></tr>
|
|
<tr class="memdesc:a0bdbbaa6e3ab315b0c5fce03247cea6c"><td class="mdescLeft"> </td><td class="mdescRight">Minimal constructor using focal lengths and baseline only. <br /></td></tr>
|
|
<tr class="separator:a0bdbbaa6e3ab315b0c5fce03247cea6c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8e3a5c32e13727545f2d22dda05c96b0" id="r_a8e3a5c32e13727545f2d22dda05c96b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8e3a5c32e13727545f2d22dda05c96b0">StereoCameraModel</a> (const std::string &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a>, double fx, double fy, double cx, double cy, double <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8dc48f95fcf68eb81da96941f778535f">baseline</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#a5257cde3d51bbee7c51c3f36d0c7741f">localTransform</a>=<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0), const cv::Size &imageSize=cv::Size(0, 0))</td></tr>
|
|
<tr class="memdesc:a8e3a5c32e13727545f2d22dda05c96b0"><td class="mdescLeft"> </td><td class="mdescRight">Minimal constructor that also sets a name, required if we want to save it to a file. <br /></td></tr>
|
|
<tr class="separator:a8e3a5c32e13727545f2d22dda05c96b0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afaa6d8cf4c9b503cc8c8a03fb25ecdf3" id="r_afaa6d8cf4c9b503cc8c8a03fb25ecdf3"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#afaa6d8cf4c9b503cc8c8a03fb25ecdf3">~StereoCameraModel</a> ()</td></tr>
|
|
<tr class="memdesc:afaa6d8cf4c9b503cc8c8a03fb25ecdf3"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br /></td></tr>
|
|
<tr class="separator:afaa6d8cf4c9b503cc8c8a03fb25ecdf3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6c16870b83978d286003b166fd6949cf" id="r_a6c16870b83978d286003b166fd6949cf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a6c16870b83978d286003b166fd6949cf">isValidForProjection</a> () const</td></tr>
|
|
<tr class="memdesc:a6c16870b83978d286003b166fd6949cf"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if both left and right models are valid for projection and the baseline is positive. <br /></td></tr>
|
|
<tr class="separator:a6c16870b83978d286003b166fd6949cf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac5e22eec7815cb27e436afada2b5769f" id="r_ac5e22eec7815cb27e436afada2b5769f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#ac5e22eec7815cb27e436afada2b5769f">isValidForRectification</a> () const</td></tr>
|
|
<tr class="memdesc:ac5e22eec7815cb27e436afada2b5769f"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if both left and right models are valid for rectification. <br /></td></tr>
|
|
<tr class="separator:ac5e22eec7815cb27e436afada2b5769f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a544ee7d540dfe57c94863190d87898aa" id="r_a544ee7d540dfe57c94863190d87898aa"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a544ee7d540dfe57c94863190d87898aa">initRectificationMap</a> ()</td></tr>
|
|
<tr class="memdesc:a544ee7d540dfe57c94863190d87898aa"><td class="mdescLeft"> </td><td class="mdescRight">Initializes the rectification maps for both cameras. <br /></td></tr>
|
|
<tr class="separator:a544ee7d540dfe57c94863190d87898aa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa35a73db2fc272f0f33b40220b75fa43" id="r_aa35a73db2fc272f0f33b40220b75fa43"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#aa35a73db2fc272f0f33b40220b75fa43">isRectificationMapInitialized</a> () const</td></tr>
|
|
<tr class="memdesc:aa35a73db2fc272f0f33b40220b75fa43"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if rectification maps are initialized. <br /></td></tr>
|
|
<tr class="separator:aa35a73db2fc272f0f33b40220b75fa43"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adc404f0be63eedd0e0a9d6d5b5b36a94" id="r_adc404f0be63eedd0e0a9d6d5b5b36a94"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#adc404f0be63eedd0e0a9d6d5b5b36a94">setName</a> (const std::string &<a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a>, const std::string &leftSuffix="left", const std::string &rightSuffix="right")</td></tr>
|
|
<tr class="memdesc:adc404f0be63eedd0e0a9d6d5b5b36a94"><td class="mdescLeft"> </td><td class="mdescRight">Sets the camera name and optional image suffixes for the left and right cameras. <br /></td></tr>
|
|
<tr class="separator:adc404f0be63eedd0e0a9d6d5b5b36a94"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae759fe4ff0862f5305cf85257e0367a1" id="r_ae759fe4ff0862f5305cf85257e0367a1"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#ae759fe4ff0862f5305cf85257e0367a1">name</a> () const</td></tr>
|
|
<tr class="memdesc:ae759fe4ff0862f5305cf85257e0367a1"><td class="mdescLeft"> </td><td class="mdescRight">Gets the camera name. <br /></td></tr>
|
|
<tr class="separator:ae759fe4ff0862f5305cf85257e0367a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a898c2eff7bfc4977703f8edb86ca1187" id="r_a898c2eff7bfc4977703f8edb86ca1187"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a898c2eff7bfc4977703f8edb86ca1187">setImageSize</a> (const cv::Size &size)</td></tr>
|
|
<tr class="memdesc:a898c2eff7bfc4977703f8edb86ca1187"><td class="mdescLeft"> </td><td class="mdescRight">Sets the image size for both left and right cameras. <br /></td></tr>
|
|
<tr class="separator:a898c2eff7bfc4977703f8edb86ca1187"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9c2d94b9bc335fdec7f5fa4f4c45a07c" id="r_a9c2d94b9bc335fdec7f5fa4f4c45a07c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a9c2d94b9bc335fdec7f5fa4f4c45a07c">load</a> (const std::string &directory, const std::string &cameraName, bool ignoreStereoTransform=true, bool initRectificationMaps=true)</td></tr>
|
|
<tr class="memdesc:a9c2d94b9bc335fdec7f5fa4f4c45a07c"><td class="mdescLeft"> </td><td class="mdescRight">Loads stereo camera calibration data from disk. <br /></td></tr>
|
|
<tr class="separator:a9c2d94b9bc335fdec7f5fa4f4c45a07c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abfafd0a24795186f3bf623082663b4cd" id="r_abfafd0a24795186f3bf623082663b4cd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#abfafd0a24795186f3bf623082663b4cd">save</a> (const std::string &directory, bool ignoreStereoTransform=true) const</td></tr>
|
|
<tr class="memdesc:abfafd0a24795186f3bf623082663b4cd"><td class="mdescLeft"> </td><td class="mdescRight">Saves stereo camera calibration data to disk. <br /></td></tr>
|
|
<tr class="separator:abfafd0a24795186f3bf623082663b4cd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1d016f499dbcce889ce7b7062c83b660" id="r_a1d016f499dbcce889ce7b7062c83b660"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1d016f499dbcce889ce7b7062c83b660">saveStereoTransform</a> (const std::string &directory) const</td></tr>
|
|
<tr class="memdesc:a1d016f499dbcce889ce7b7062c83b660"><td class="mdescLeft"> </td><td class="mdescRight">Saves stereo extrinsic parameters to a YAML file in ROS format. <br /></td></tr>
|
|
<tr class="separator:a1d016f499dbcce889ce7b7062c83b660"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4eab6254ef808719ca2d0543c89e0722" id="r_a4eab6254ef808719ca2d0543c89e0722"><td class="memItemLeft" align="right" valign="top">std::vector< unsigned char > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a4eab6254ef808719ca2d0543c89e0722">serialize</a> () const</td></tr>
|
|
<tr class="memdesc:a4eab6254ef808719ca2d0543c89e0722"><td class="mdescLeft"> </td><td class="mdescRight">Serializes the stereo camera model into a byte vector. <br /></td></tr>
|
|
<tr class="separator:a4eab6254ef808719ca2d0543c89e0722"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7467f3a9a7961e643d0cd152286a13dd" id="r_a7467f3a9a7961e643d0cd152286a13dd"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7467f3a9a7961e643d0cd152286a13dd">deserialize</a> (const std::vector< unsigned char > &data)</td></tr>
|
|
<tr class="memdesc:a7467f3a9a7961e643d0cd152286a13dd"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes stereo camera model data from a byte vector. <br /></td></tr>
|
|
<tr class="separator:a7467f3a9a7961e643d0cd152286a13dd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afdec3f5bab7ab9b4c339edaa30e639db" id="r_afdec3f5bab7ab9b4c339edaa30e639db"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#afdec3f5bab7ab9b4c339edaa30e639db">deserialize</a> (const unsigned char *data, unsigned int dataSize)</td></tr>
|
|
<tr class="memdesc:afdec3f5bab7ab9b4c339edaa30e639db"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes stereo camera model data from a raw byte array. <br /></td></tr>
|
|
<tr class="separator:afdec3f5bab7ab9b4c339edaa30e639db"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8dc48f95fcf68eb81da96941f778535f" id="r_a8dc48f95fcf68eb81da96941f778535f"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8dc48f95fcf68eb81da96941f778535f">baseline</a> () const</td></tr>
|
|
<tr class="memdesc:a8dc48f95fcf68eb81da96941f778535f"><td class="mdescLeft"> </td><td class="mdescRight">Returns the stereo baseline in meters. <br /></td></tr>
|
|
<tr class="separator:a8dc48f95fcf68eb81da96941f778535f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a514f7d1baff8b4be96d760b27279f5d6" id="r_a514f7d1baff8b4be96d760b27279f5d6"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a514f7d1baff8b4be96d760b27279f5d6">computeDepth</a> (float disparity) const</td></tr>
|
|
<tr class="memdesc:a514f7d1baff8b4be96d760b27279f5d6"><td class="mdescLeft"> </td><td class="mdescRight">Computes the depth (Z coordinate) from a given disparity value. <br /></td></tr>
|
|
<tr class="separator:a514f7d1baff8b4be96d760b27279f5d6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aecf8b2a628ead0bc422dbf791d683f5b" id="r_aecf8b2a628ead0bc422dbf791d683f5b"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#aecf8b2a628ead0bc422dbf791d683f5b">computeDisparity</a> (float depth) const</td></tr>
|
|
<tr class="memdesc:aecf8b2a628ead0bc422dbf791d683f5b"><td class="mdescLeft"> </td><td class="mdescRight">Computes the disparity value from a given depth. <br /></td></tr>
|
|
<tr class="separator:aecf8b2a628ead0bc422dbf791d683f5b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a28230b8236ed778729ed1e1ceb590f31" id="r_a28230b8236ed778729ed1e1ceb590f31"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a28230b8236ed778729ed1e1ceb590f31">computeDisparity</a> (unsigned short depth) const</td></tr>
|
|
<tr class="memdesc:a28230b8236ed778729ed1e1ceb590f31"><td class="mdescLeft"> </td><td class="mdescRight">Computes the disparity value from a depth given in unsigned short format (millimeters). <br /></td></tr>
|
|
<tr class="separator:a28230b8236ed778729ed1e1ceb590f31"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a084e3e40c8b0caf66269d508a8fcffbc" id="r_a084e3e40c8b0caf66269d508a8fcffbc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a084e3e40c8b0caf66269d508a8fcffbc">reproject</a> (float x, float y, float z, float &uLeft, float &vLeft, float &uRight, float &vRight) const</td></tr>
|
|
<tr class="memdesc:a084e3e40c8b0caf66269d508a8fcffbc"><td class="mdescLeft"> </td><td class="mdescRight">Reprojects a 3D point of the left camera frame into both image planes (floating-point). <br /></td></tr>
|
|
<tr class="separator:a084e3e40c8b0caf66269d508a8fcffbc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a626b8f54940ebc77ec504921004dda3a" id="r_a626b8f54940ebc77ec504921004dda3a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a626b8f54940ebc77ec504921004dda3a">reproject</a> (float x, float y, float z, int &uLeft, int &vLeft, int &uRight, int &vRight) const</td></tr>
|
|
<tr class="memdesc:a626b8f54940ebc77ec504921004dda3a"><td class="mdescLeft"> </td><td class="mdescRight">Reprojects a 3D point of the left camera frame into both image planes (rounded to int). <br /></td></tr>
|
|
<tr class="separator:a626b8f54940ebc77ec504921004dda3a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7afd347afb3909a2039f154b3a048035" id="r_a7afd347afb3909a2039f154b3a048035"><td class="memItemLeft" align="right" valign="top">const cv::Mat & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7afd347afb3909a2039f154b3a048035">R</a> () const</td></tr>
|
|
<tr class="memdesc:a7afd347afb3909a2039f154b3a048035"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> extrinsic rotation matrix. <br /></td></tr>
|
|
<tr class="separator:a7afd347afb3909a2039f154b3a048035"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a82d60ddca8d0cdbe939b043ed02334b6" id="r_a82d60ddca8d0cdbe939b043ed02334b6"><td class="memItemLeft" align="right" valign="top">const cv::Mat & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a82d60ddca8d0cdbe939b043ed02334b6">T</a> () const</td></tr>
|
|
<tr class="memdesc:a82d60ddca8d0cdbe939b043ed02334b6"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> extrinsic translation vector. <br /></td></tr>
|
|
<tr class="separator:a82d60ddca8d0cdbe939b043ed02334b6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8ab6c698248837e4dcfe36c2e7b02546" id="r_a8ab6c698248837e4dcfe36c2e7b02546"><td class="memItemLeft" align="right" valign="top">const cv::Mat & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a8ab6c698248837e4dcfe36c2e7b02546">E</a> () const</td></tr>
|
|
<tr class="memdesc:a8ab6c698248837e4dcfe36c2e7b02546"><td class="mdescLeft"> </td><td class="mdescRight">Essential matrix. <br /></td></tr>
|
|
<tr class="separator:a8ab6c698248837e4dcfe36c2e7b02546"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1e4ffc9baa8dfee0a79ea32bac9b7c1c" id="r_a1e4ffc9baa8dfee0a79ea32bac9b7c1c"><td class="memItemLeft" align="right" valign="top">const cv::Mat & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1e4ffc9baa8dfee0a79ea32bac9b7c1c">F</a> () const</td></tr>
|
|
<tr class="memdesc:a1e4ffc9baa8dfee0a79ea32bac9b7c1c"><td class="mdescLeft"> </td><td class="mdescRight">Fundamental matrix. <br /></td></tr>
|
|
<tr class="separator:a1e4ffc9baa8dfee0a79ea32bac9b7c1c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a264d57ca1e0f6b41d03ffe1d89afc382" id="r_a264d57ca1e0f6b41d03ffe1d89afc382"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a264d57ca1e0f6b41d03ffe1d89afc382">scale</a> (double scale)</td></tr>
|
|
<tr class="memdesc:a264d57ca1e0f6b41d03ffe1d89afc382"><td class="mdescLeft"> </td><td class="mdescRight">Scales both cameras' calibration by a factor. <br /></td></tr>
|
|
<tr class="separator:a264d57ca1e0f6b41d03ffe1d89afc382"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac2fb1c489ae60bd7e4c104515db3c3a9" id="r_ac2fb1c489ae60bd7e4c104515db3c3a9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#ac2fb1c489ae60bd7e4c104515db3c3a9">roi</a> (const cv::Rect &roi)</td></tr>
|
|
<tr class="memdesc:ac2fb1c489ae60bd7e4c104515db3c3a9"><td class="mdescLeft"> </td><td class="mdescRight">Applies region-of-interest (ROI) cropping to both cameras. <br /></td></tr>
|
|
<tr class="separator:ac2fb1c489ae60bd7e4c104515db3c3a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee77882ceca428a560f5fd3713a330fb" id="r_aee77882ceca428a560f5fd3713a330fb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#aee77882ceca428a560f5fd3713a330fb">setLocalTransform</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &transform)</td></tr>
|
|
<tr class="memdesc:aee77882ceca428a560f5fd3713a330fb"><td class="mdescLeft"> </td><td class="mdescRight">Sets the local transform from left camera to robot base. <br /></td></tr>
|
|
<tr class="separator:aee77882ceca428a560f5fd3713a330fb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5257cde3d51bbee7c51c3f36d0c7741f" id="r_a5257cde3d51bbee7c51c3f36d0c7741f"><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_1StereoCameraModel.html#a5257cde3d51bbee7c51c3f36d0c7741f">localTransform</a> () const</td></tr>
|
|
<tr class="memdesc:a5257cde3d51bbee7c51c3f36d0c7741f"><td class="mdescLeft"> </td><td class="mdescRight">Gets the local transform from left camera to robot base. <br /></td></tr>
|
|
<tr class="separator:a5257cde3d51bbee7c51c3f36d0c7741f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a506f83654d7f772a3743d24869c05742" id="r_a506f83654d7f772a3743d24869c05742"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a506f83654d7f772a3743d24869c05742">stereoTransform</a> () const</td></tr>
|
|
<tr class="memdesc:a506f83654d7f772a3743d24869c05742"><td class="mdescLeft"> </td><td class="mdescRight">Returns the stereo transform (left camera relative to right camera coordinate system). <br /></td></tr>
|
|
<tr class="separator:a506f83654d7f772a3743d24869c05742"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a064d29601c0ba13fc47584849e26b81b" id="r_a064d29601c0ba13fc47584849e26b81b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a064d29601c0ba13fc47584849e26b81b">left</a> () const</td></tr>
|
|
<tr class="memdesc:a064d29601c0ba13fc47584849e26b81b"><td class="mdescLeft"> </td><td class="mdescRight">Returns the left camera model. <br /></td></tr>
|
|
<tr class="separator:a064d29601c0ba13fc47584849e26b81b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab8061141407d8cc55d7f83211708af85" id="r_ab8061141407d8cc55d7f83211708af85"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#ab8061141407d8cc55d7f83211708af85">right</a> () const</td></tr>
|
|
<tr class="memdesc:ab8061141407d8cc55d7f83211708af85"><td class="mdescLeft"> </td><td class="mdescRight">Returns the right camera model. <br /></td></tr>
|
|
<tr class="separator:ab8061141407d8cc55d7f83211708af85"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a799e3f787d015b5cbd0189768f5b673c" id="r_a799e3f787d015b5cbd0189768f5b673c"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a799e3f787d015b5cbd0189768f5b673c">getLeftSuffix</a> () const</td></tr>
|
|
<tr class="memdesc:a799e3f787d015b5cbd0189768f5b673c"><td class="mdescLeft"> </td><td class="mdescRight">Gets the suffix used for the left camera calibration file. <br /></td></tr>
|
|
<tr class="separator:a799e3f787d015b5cbd0189768f5b673c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3ecae21bbf6bc9914d0bb553c99f9e09" id="r_a3ecae21bbf6bc9914d0bb553c99f9e09"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a3ecae21bbf6bc9914d0bb553c99f9e09">getRightSuffix</a> () const</td></tr>
|
|
<tr class="memdesc:a3ecae21bbf6bc9914d0bb553c99f9e09"><td class="mdescLeft"> </td><td class="mdescRight">Gets the suffix used for the right camera calibration file. <br /></td></tr>
|
|
<tr class="separator:a3ecae21bbf6bc9914d0bb553c99f9e09"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>A class representing a calibrated stereo camera system. </p>
|
|
<p>This class encapsulates the calibration data and operations associated with a stereo camera setup, including intrinsic and extrinsic parameters for both left and right cameras, stereo rectification, and methods for computing depth or disparity from stereo images.</p>
|
|
<p>It relies internally on two <code><a class="el" href="classrtabmap_1_1CameraModel.html" title="Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...">CameraModel</a></code> instances for the left and right cameras.</p>
|
|
<p>Typical uses include:</p><ul>
|
|
<li><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> rectification</li>
|
|
<li><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> disparity-to-depth conversion</li>
|
|
<li>Saving and loading stereo camera calibration data</li>
|
|
<li>Projecting or reprojecting points</li>
|
|
</ul>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1CameraModel.html" title="Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...">CameraModel</a> </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00053">53</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a179ffcbc49ff3a281ef33cb4381e061c" name="a179ffcbc49ff3a281ef33cb4381e061c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a179ffcbc49ff3a281ef33cb4381e061c">◆ </a></span>StereoCameraModel() <span class="overload">[1/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Default constructor. Creates an empty stereo model with default suffixes ("left", "right"). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00059">59</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1887639053ef5c09c3f650b5a7f280d8" name="a1887639053ef5c09c3f650b5a7f280d8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1887639053ef5c09c3f650b5a7f280d8">◆ </a></span>StereoCameraModel() <span class="overload">[2/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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>imageSize1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>K1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>D1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>R1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>P1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Size & </td>
|
|
<td class="paramname"><em>imageSize2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>K2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>D2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>R2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>P2</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>T</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>E</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>F</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_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0)</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from detailed intrinsic and extrinsic parameters for both cameras. </p>
|
|
<p>Initializes the stereo camera model by specifying the calibration parameters for the left and right cameras, along with the stereo extrinsic parameters.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">name</td><td>Name identifier for the stereo camera. </td></tr>
|
|
<tr><td class="paramname">imageSize1</td><td>Image size (width, height) of the left camera. </td></tr>
|
|
<tr><td class="paramname">K1</td><td>Intrinsic camera matrix (3x3, CV_64FC1) for the left camera. </td></tr>
|
|
<tr><td class="paramname">D1</td><td>Distortion coefficients for the left camera. </td></tr>
|
|
<tr><td class="paramname">R1</td><td>Rectification matrix (3x3, CV_64FC1) for the left camera. </td></tr>
|
|
<tr><td class="paramname">P1</td><td>Projection matrix (3x4, CV_64FC1) for the left camera. </td></tr>
|
|
<tr><td class="paramname">imageSize2</td><td>Image size (width, height) of the right camera. </td></tr>
|
|
<tr><td class="paramname">K2</td><td>Intrinsic camera matrix (3x3, CV_64FC1) for the right camera. </td></tr>
|
|
<tr><td class="paramname">D2</td><td>Distortion coefficients for the right camera. </td></tr>
|
|
<tr><td class="paramname">R2</td><td>Rectification matrix (3x3, CV_64FC1) for the right camera. </td></tr>
|
|
<tr><td class="paramname">P2</td><td>Projection matrix (3x4, CV_64FC1) for the right camera. </td></tr>
|
|
<tr><td class="paramname">R</td><td>Rotation matrix (3x3, CV_64FC1) representing the rotation from left to right camera coordinate system. Can be empty if unknown. </td></tr>
|
|
<tr><td class="paramname">T</td><td>Translation vector (3x1, CV_64FC1) representing the translation from left to right camera coordinate system. Can be empty if unknown. </td></tr>
|
|
<tr><td class="paramname">E</td><td>Essential matrix (3x3, CV_64FC1) encoding the stereo camera epipolar geometry. Can be empty if unknown. </td></tr>
|
|
<tr><td class="paramname">F</td><td>Fundamental matrix (3x3, CV_64FC1) encoding the stereo camera epipolar constraints. Can be empty if unknown. </td></tr>
|
|
<tr><td class="paramname">localTransform</td><td>The local transform associated with the stereo camera model.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>All matrices must have correct sizes and types as specified. The rectification and projection matrices (R1, P1, R2, P2) are used to define the stereo rectification parameters. The rotation and translation (R, T) define the relative pose between the cameras. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae91c2717319f3cd7b6f40768e5adbb9f" name="ae91c2717319f3cd7b6f40768e5adbb9f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae91c2717319f3cd7b6f40768e5adbb9f">◆ </a></span>StereoCameraModel() <span class="overload">[3/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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 <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td>
|
|
<td class="paramname"><em>leftCameraModel</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td>
|
|
<td class="paramname"><em>rightCameraModel</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>R</em> = <code>cv::Mat()</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>T</em> = <code>cv::Mat()</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>E</em> = <code>cv::Mat()</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>F</em> = <code>cv::Mat()</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from two individual camera models and optional stereo extrinsic parameters. </p>
|
|
<p>This constructor initializes the stereo camera model by assigning the provided left and right camera models. If the stereo extrinsics (<code>R</code>, <code>T</code>) are provided and valid, stereo rectification will be attempted—provided both cameras are valid for rectification and their image dimensions match.</p>
|
|
<p>Each camera model will automatically have its name updated using the <code>name</code> parameter and default suffixes ("left", "right").</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">name</td><td>The base name for the stereo camera model. </td></tr>
|
|
<tr><td class="paramname">leftCameraModel</td><td>The camera model representing the left camera. </td></tr>
|
|
<tr><td class="paramname">rightCameraModel</td><td>The camera model representing the right camera. </td></tr>
|
|
<tr><td class="paramname">R</td><td>(Optional) Rotation matrix of the left camera relative to the right camera coordinate system (3x3, CV_64FC1). </td></tr>
|
|
<tr><td class="paramname">T</td><td>(Optional) Translation vector of the left camera relative to the right camera coordinate system (3x1, CV_64FC1). </td></tr>
|
|
<tr><td class="paramname">E</td><td>(Optional) Essential matrix between the two cameras (3x3, CV_64FC1). </td></tr>
|
|
<tr><td class="paramname">F</td><td>(Optional) Fundamental matrix between the two cameras (3x3, CV_64FC1).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classUException.html">UException</a></td><td>if any of the provided matrices (<code>R</code>, <code>T</code>, <code>E</code>, <code>F</code>) are non-empty and not of the expected type/shape. </td></tr>
|
|
<tr><td class="paramname"><a class="el" href="classUException.html">UException</a></td><td>if <code>R</code> and <code>T</code> are provided but the camera models are not valid for rectification.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> rectification is only attempted if both <code>R</code> and <code>T</code> are non-empty, the cameras are valid, and their image sizes match. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd>updateStereoRectification() </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a76bab07a51033de989fc522064ede024" name="a76bab07a51033de989fc522064ede024"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a76bab07a51033de989fc522064ede024">◆ </a></span>StereoCameraModel() <span class="overload">[4/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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 <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td>
|
|
<td class="paramname"><em>leftCameraModel</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1CameraModel.html">CameraModel</a> & </td>
|
|
<td class="paramname"><em>rightCameraModel</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>extrinsics</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructs a <a class="el" href="classrtabmap_1_1StereoCameraModel.html" title="A class representing a calibrated stereo camera system.">StereoCameraModel</a> from two camera models and an extrinsic <a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> between them. </p>
|
|
<p>This constructor sets up a stereo camera model using the given left and right camera models along with an optional 3D transform (<code>extrinsics</code>) representing the pose of the left camera relative to the right camera coordinate system.</p>
|
|
<p>If a valid (non-null) transform is provided, the corresponding rotation and translation matrices are extracted and stored as the stereo extrinsic parameters. <a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> rectification will be attempted if both camera models are valid for rectification and their image sizes match.</p>
|
|
<p>Each camera model will be renamed using the provided <code>name</code> and default suffixes ("left", "right").</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">name</td><td>Base name for the stereo camera model. </td></tr>
|
|
<tr><td class="paramname">leftCameraModel</td><td><a class="el" href="classrtabmap_1_1Camera.html">Camera</a> model for the left camera. </td></tr>
|
|
<tr><td class="paramname">rightCameraModel</td><td><a class="el" href="classrtabmap_1_1Camera.html">Camera</a> model for the right camera. </td></tr>
|
|
<tr><td class="paramname">extrinsics</td><td>(Optional) <a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> of the left camera relative to the right camera coordinate system. If null, no extrinsics are used.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classUException.html">UException</a></td><td>if <code>extrinsics</code> is not null and either camera model is not valid for rectification.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> rectification is performed only when <code>extrinsics</code> is valid and both camera models are rectifiable with matching image dimensions. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd>updateStereoRectification() </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0bdbbaa6e3ab315b0c5fce03247cea6c" name="a0bdbbaa6e3ab315b0c5fce03247cea6c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0bdbbaa6e3ab315b0c5fce03247cea6c">◆ </a></span>StereoCameraModel() <span class="overload">[5/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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">double </td>
|
|
<td class="paramname"><em>baseline</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_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0)</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 focal lengths and baseline only. </p>
|
|
<p>Creates a simplified stereo camera model using only the essential intrinsic parameters and baseline. This constructor assumes the images are already rectified and both cameras have the same intrinsic parameters.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">fx</td><td>Focal length in x direction (pixels). </td></tr>
|
|
<tr><td class="paramname">fy</td><td>Focal length in y direction (pixels). </td></tr>
|
|
<tr><td class="paramname">cx</td><td>Principal point x coordinate (pixels). </td></tr>
|
|
<tr><td class="paramname">cy</td><td>Principal point y coordinate (pixels). </td></tr>
|
|
<tr><td class="paramname">baseline</td><td><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> baseline distance in meters. </td></tr>
|
|
<tr><td class="paramname">localTransform</td><td>Local transform from camera to robot base frame (default: optical rotation). </td></tr>
|
|
<tr><td class="paramname">imageSize</td><td>Image size (width, height). Optional, can be set later.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This constructor creates a simplified model suitable for rectified stereo pairs. For full calibration with distortion, use the constructors that accept camera matrices. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8e3a5c32e13727545f2d22dda05c96b0" name="a8e3a5c32e13727545f2d22dda05c96b0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8e3a5c32e13727545f2d22dda05c96b0">◆ </a></span>StereoCameraModel() <span class="overload">[6/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rtabmap::StereoCameraModel::StereoCameraModel </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">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">double </td>
|
|
<td class="paramname"><em>baseline</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_1Transform.html">Transform</a>(0, 0, 1, 0, -1, 0, 0, 0, 0,-1, 0, 0)</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 that also sets a name, required if we want to save it to a file. </p>
|
|
<p>Same as the minimal constructor but also sets the camera name, which is required when saving the calibration to disk.</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 identifier (used for saving calibration files). </td></tr>
|
|
<tr><td class="paramname">fx</td><td>Focal length in x direction (pixels). </td></tr>
|
|
<tr><td class="paramname">fy</td><td>Focal length in y direction (pixels). </td></tr>
|
|
<tr><td class="paramname">cx</td><td>Principal point x coordinate (pixels). </td></tr>
|
|
<tr><td class="paramname">cy</td><td>Principal point y coordinate (pixels). </td></tr>
|
|
<tr><td class="paramname">baseline</td><td><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> baseline distance in meters. </td></tr>
|
|
<tr><td class="paramname">localTransform</td><td>Local transform from camera to robot base frame (default: optical rotation). </td></tr>
|
|
<tr><td class="paramname">imageSize</td><td>Image size (width, height). Optional, can be set later.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Use this constructor when you plan to save the calibration to a file. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afaa6d8cf4c9b503cc8c8a03fb25ecdf3" name="afaa6d8cf4c9b503cc8c8a03fb25ecdf3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afaa6d8cf4c9b503cc8c8a03fb25ecdf3">◆ </a></span>~StereoCameraModel()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual rtabmap::StereoCameraModel::~StereoCameraModel </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="StereoCameraModel_8h_source.html#l00219">219</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a6c16870b83978d286003b166fd6949cf" name="a6c16870b83978d286003b166fd6949cf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6c16870b83978d286003b166fd6949cf">◆ </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::StereoCameraModel::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>Returns true if both left and right models are valid for projection and the baseline is positive. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00224">224</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac5e22eec7815cb27e436afada2b5769f" name="ac5e22eec7815cb27e436afada2b5769f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac5e22eec7815cb27e436afada2b5769f">◆ </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::StereoCameraModel::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>Returns true if both left and right models are valid for rectification. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00229">229</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a544ee7d540dfe57c94863190d87898aa" name="a544ee7d540dfe57c94863190d87898aa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a544ee7d540dfe57c94863190d87898aa">◆ </a></span>initRectificationMap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::StereoCameraModel::initRectificationMap </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> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initializes the rectification maps for both cameras. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00234">234</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa35a73db2fc272f0f33b40220b75fa43" name="aa35a73db2fc272f0f33b40220b75fa43"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa35a73db2fc272f0f33b40220b75fa43">◆ </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::StereoCameraModel::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>Returns true if rectification maps are initialized. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00239">239</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adc404f0be63eedd0e0a9d6d5b5b36a94" name="adc404f0be63eedd0e0a9d6d5b5b36a94"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adc404f0be63eedd0e0a9d6d5b5b36a94">◆ </a></span>setName()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::StereoCameraModel::setName </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 std::string & </td>
|
|
<td class="paramname"><em>leftSuffix</em> = <code>"left"</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>rightSuffix</em> = <code>"right"</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the camera name and optional image suffixes for the left and right cameras. </p>
|
|
<p>Updates the stereo camera model name and the suffixes used for identifying left and right camera calibration files. The suffixes are used when loading/saving calibration data from disk.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">name</td><td>Base name for the stereo camera model. </td></tr>
|
|
<tr><td class="paramname">leftSuffix</td><td>Suffix for the left camera (default: "left"). Used in filenames like "cameraName_left.yaml". </td></tr>
|
|
<tr><td class="paramname">rightSuffix</td><td>Suffix for the right camera (default: "right"). Used in filenames like "cameraName_right.yaml".</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The suffixes are used by <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a9c2d94b9bc335fdec7f5fa4f4c45a07c" title="Loads stereo camera calibration data from disk.">load()</a> and <a class="el" href="classrtabmap_1_1StereoCameraModel.html#abfafd0a24795186f3bf623082663b4cd" title="Saves stereo camera calibration data to disk.">save()</a> methods to construct filenames for each camera. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae759fe4ff0862f5305cf85257e0367a1" name="ae759fe4ff0862f5305cf85257e0367a1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae759fe4ff0862f5305cf85257e0367a1">◆ </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::StereoCameraModel::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>Gets the camera name. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00258">258</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a898c2eff7bfc4977703f8edb86ca1187" name="a898c2eff7bfc4977703f8edb86ca1187"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a898c2eff7bfc4977703f8edb86ca1187">◆ </a></span>setImageSize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::StereoCameraModel::setImageSize </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const cv::Size & </td>
|
|
<td class="paramname"><em>size</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 image size for both left and right cameras. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00263">263</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9c2d94b9bc335fdec7f5fa4f4c45a07c" name="a9c2d94b9bc335fdec7f5fa4f4c45a07c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9c2d94b9bc335fdec7f5fa4f4c45a07c">◆ </a></span>load()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::StereoCameraModel::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>ignoreStereoTransform</em> = <code>true</code>, </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 stereo camera calibration data from disk. </p>
|
|
<p>This method loads the intrinsic parameters for both the left and right cameras from files in the specified directory, using the provided camera name and internal suffixes. If <code>ignoreStereoTransform</code> is false, it also attempts to load the stereo extrinsic parameters (rotation, translation, essential, and fundamental matrices) from a YAML file.</p>
|
|
<p>The stereo extrinsics are expected in the file: <code>directory/cameraName_pose.yaml</code>, following the ROS calibration format.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">directory</td><td>The directory where the calibration files are located. </td></tr>
|
|
<tr><td class="paramname">cameraName</td><td>The base name of the stereo camera (used to derive filenames). </td></tr>
|
|
<tr><td class="paramname">ignoreStereoTransform</td><td>If true, skips loading stereo extrinsic parameters. </td></tr>
|
|
<tr><td class="paramname">initRectificationMaps</td><td>Set to false to skip building the (potentially large) left/right 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 is successful, false otherwise.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1StereoCameraModel.html#abfafd0a24795186f3bf623082663b4cd" title="Saves stereo camera calibration data to disk.">save()</a>, <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1d016f499dbcce889ce7b7062c83b660" title="Saves stereo extrinsic parameters to a YAML file in ROS format.">saveStereoTransform()</a>, <a class="el" href="classrtabmap_1_1CameraModel.html#a5690a86d11b0d84e80961ae5d38b1d25" title="Initializes the rectification maps used to undistort and rectify images.">CameraModel::initRectificationMap()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abfafd0a24795186f3bf623082663b4cd" name="abfafd0a24795186f3bf623082663b4cd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abfafd0a24795186f3bf623082663b4cd">◆ </a></span>save()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::StereoCameraModel::save </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">bool </td>
|
|
<td class="paramname"><em>ignoreStereoTransform</em> = <code>true</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Saves stereo camera calibration data to disk. </p>
|
|
<p>This method saves the intrinsic parameters of both left and right cameras to the specified directory. If <code>ignoreStereoTransform</code> is false, it also saves the stereo extrinsic parameters (rotation, translation, essential, and fundamental matrices) in a ROS-compatible YAML file named <code>cameraName_pose.yaml</code>.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">directory</td><td>The directory where calibration files should be saved. </td></tr>
|
|
<tr><td class="paramname">ignoreStereoTransform</td><td>If true, skips saving stereo extrinsic parameters. </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 see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a9c2d94b9bc335fdec7f5fa4f4c45a07c" title="Loads stereo camera calibration data from disk.">load()</a>, <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a1d016f499dbcce889ce7b7062c83b660" title="Saves stereo extrinsic parameters to a YAML file in ROS format.">saveStereoTransform()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1d016f499dbcce889ce7b7062c83b660" name="a1d016f499dbcce889ce7b7062c83b660"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1d016f499dbcce889ce7b7062c83b660">◆ </a></span>saveStereoTransform()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::StereoCameraModel::saveStereoTransform </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 stereo extrinsic parameters to a YAML file in ROS format. </p>
|
|
<p>This method exports the stereo transform, including rotation, translation, essential, and fundamental matrices, into a YAML file named <code>cameraName_pose.yaml</code> located in the specified directory. The file format is compatible with ROS camera calibration tools.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">directory</td><td>The target directory for saving the calibration file. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if saving was successful, false if required matrices are missing or invalid.</dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>If extrinsics (<code>R_</code>, <code>T_</code>, <code>E_</code>, <code>F_</code>) are empty or invalid, nothing will be saved and a warning is printed.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a9c2d94b9bc335fdec7f5fa4f4c45a07c" title="Loads stereo camera calibration data from disk.">load()</a>, <a class="el" href="classrtabmap_1_1StereoCameraModel.html#abfafd0a24795186f3bf623082663b4cd" title="Saves stereo camera calibration data to disk.">save()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4eab6254ef808719ca2d0543c89e0722" name="a4eab6254ef808719ca2d0543c89e0722"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4eab6254ef808719ca2d0543c89e0722">◆ </a></span>serialize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector< unsigned char > rtabmap::StereoCameraModel::serialize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Serializes the stereo camera model into a byte vector. </p>
|
|
<p>This method serializes the left and right camera models along with the stereo extrinsic parameters (rotation matrix R_, translation vector T_, essential matrix E_, and fundamental matrix F_) into a contiguous byte array. The serialization format starts with a fixed-size integer header containing version info, stereo type, matrix sizes, and serialized data sizes, followed by the actual matrices and serialized camera data.</p>
|
|
<p>The serialized data can later be restored using the corresponding <code><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7467f3a9a7961e643d0cd152286a13dd" title="Deserializes stereo camera model data from a byte vector.">deserialize()</a></code> method.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>A vector of unsigned char containing the serialized stereo camera data. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7467f3a9a7961e643d0cd152286a13dd" name="a7467f3a9a7961e643d0cd152286a13dd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7467f3a9a7961e643d0cd152286a13dd">◆ </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::StereoCameraModel::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 stereo camera model data from a byte vector. </p>
|
|
<p>This method wraps the pointer-based <code><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a7467f3a9a7961e643d0cd152286a13dd" title="Deserializes stereo camera model data from a byte vector.">deserialize()</a></code> and attempts to restore the stereo camera model from the given serialized byte vector.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">data</td><td>The vector of bytes containing previously serialized stereo camera model data. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The number of bytes read from the data if successful, 0 otherwise.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1StereoCameraModel.html#afdec3f5bab7ab9b4c339edaa30e639db" title="Deserializes stereo camera model data from a raw byte array.">deserialize(const unsigned char*, unsigned int)</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afdec3f5bab7ab9b4c339edaa30e639db" name="afdec3f5bab7ab9b4c339edaa30e639db"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afdec3f5bab7ab9b4c339edaa30e639db">◆ </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::StereoCameraModel::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 stereo camera model data from a raw byte array. </p>
|
|
<p>This method reconstructs the stereo camera model from the provided serialized data buffer. It expects the data format to match the one produced by <code><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a4eab6254ef808719ca2d0543c89e0722" title="Serializes the stereo camera model into a byte vector.">serialize()</a></code>, including a header with version info, matrix sizes, and data sizes, followed by the serialized extrinsic matrices and serialized left and right camera data.</p>
|
|
<p>The method performs various sanity checks on data sizes and matrix dimensions and will fail if the data format or sizes are inconsistent.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">data</td><td>Pointer to the raw serialized data buffer. </td></tr>
|
|
<tr><td class="paramname">dataSize</td><td>Size in bytes of the data buffer. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The number of bytes consumed during deserialization if successful, or 0 on failure.</dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>The stereo camera model is reset to a default empty state before deserialization. </dd>
|
|
<dd>
|
|
If the serialized data type is not stereo (type != 1), deserialization will fail.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a4eab6254ef808719ca2d0543c89e0722" title="Serializes the stereo camera model into a byte vector.">serialize()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8dc48f95fcf68eb81da96941f778535f" name="a8dc48f95fcf68eb81da96941f778535f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8dc48f95fcf68eb81da96941f778535f">◆ </a></span>baseline()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double rtabmap::StereoCameraModel::baseline </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 stereo baseline in meters. </p>
|
|
<p>Computes the baseline distance between the left and right cameras using the projection matrices. The baseline is calculated as the difference in x-translation (Tx) normalized by the focal length.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>The baseline distance in meters. Returns 0.0 if focal lengths are invalid or zero.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The baseline is a physical distance and is essential for depth computation from disparity. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00378">378</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a514f7d1baff8b4be96d760b27279f5d6" name="a514f7d1baff8b4be96d760b27279f5d6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a514f7d1baff8b4be96d760b27279f5d6">◆ </a></span>computeDepth()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::StereoCameraModel::computeDepth </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>disparity</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Computes the depth (Z coordinate) from a given disparity value. </p>
|
|
<p>Uses the stereo camera model parameters to convert disparity to depth using the formula: </p><p class="formulaDsp">
|
|
<img class="formulaDsp" alt="\[
|
|
\text{depth} = \frac{\text{baseline} \times f_x}{\text{disparity} + (c_{x_{right}} - c_{x_{left}})}
|
|
\]" src="form_2.png"/>
|
|
</p>
|
|
<p> where ( f_x ) is the focal length of the left camera and ( c_x ) are principal points.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">disparity</td><td>The disparity value (difference in pixel coordinates between left and right images). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The computed depth in the same unit as the baseline (typically meters). Returns 0 if disparity is zero or if the model is not valid for projection.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This function requires the stereo camera to be valid for projection (i.e., calibrated and rectified). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aecf8b2a628ead0bc422dbf791d683f5b" name="aecf8b2a628ead0bc422dbf791d683f5b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aecf8b2a628ead0bc422dbf791d683f5b">◆ </a></span>computeDisparity() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::StereoCameraModel::computeDisparity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>depth</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Computes the disparity value from a given depth. </p>
|
|
<p>Converts depth back to disparity using the inverse formula: </p><p class="formulaDsp">
|
|
<img class="formulaDsp" alt="\[
|
|
\text{disparity} = \frac{\text{baseline} \times f_x}{\text{depth}} - (c_{x_{right}} - c_{x_{left}})
|
|
\]" src="form_3.png"/>
|
|
</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">depth</td><td>Depth value in the same unit as the baseline (typically meters). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The computed disparity in pixels. Returns 0 if depth is zero or if the model is not valid for projection.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This function requires the stereo camera to be valid for projection (i.e., calibrated and rectified). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a28230b8236ed778729ed1e1ceb590f31" name="a28230b8236ed778729ed1e1ceb590f31"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a28230b8236ed778729ed1e1ceb590f31">◆ </a></span>computeDisparity() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::StereoCameraModel::computeDisparity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned short </td>
|
|
<td class="paramname"><em>depth</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Computes the disparity value from a depth given in unsigned short format (millimeters). </p>
|
|
<p>Converts depth expressed as an unsigned short (in millimeters) to disparity. The depth is first converted to meters before computing disparity using the formula: </p><p class="formulaDsp">
|
|
<img class="formulaDsp" alt="\[
|
|
\text{disparity} = \frac{\text{baseline} \times f_x}{\text{depth (meters)}} - (c_{x_{right}} - c_{x_{left}})
|
|
\]" src="form_4.png"/>
|
|
</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">depth</td><td>Depth value in millimeters as an unsigned short. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The computed disparity in pixels. Returns 0 if depth is zero or if the model is not valid for projection.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This function requires the stereo camera to be valid for projection (i.e., calibrated and rectified). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a084e3e40c8b0caf66269d508a8fcffbc" name="a084e3e40c8b0caf66269d508a8fcffbc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a084e3e40c8b0caf66269d508a8fcffbc">◆ </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::StereoCameraModel::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>uLeft</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float & </td>
|
|
<td class="paramname"><em>vLeft</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float & </td>
|
|
<td class="paramname"><em>uRight</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float & </td>
|
|
<td class="paramname"><em>vRight</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Reprojects a 3D point of the left camera frame into both image planes (floating-point). </p>
|
|
<p>The point is given in the rectified left camera frame (/camera_link), the same frame used by <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).">CameraModel::reproject()</a> of <a class="el" href="classrtabmap_1_1StereoCameraModel.html#a064d29601c0ba13fc47584849e26b81b" title="Returns the left camera model.">left()</a>. The baseline is taken from the Tx of the rectified projection matrices, so the horizontal shift between uLeft and uRight is the disparity of that point. On a rectified stereo pair the rows are aligned, thus vRight equals vLeft.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Unlike this function, <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).">CameraModel::reproject()</a> ignores Tx, because a Tx set on a single camera model is also used to tag a left camera having stereo observations (see the stereo edges built by the BA optimizers).</dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir"></td><td class="paramname">x</td><td>X coordinate in the left camera space. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">y</td><td>Y coordinate in the left camera space. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">z</td><td>Z coordinate in the left camera space (must be non-zero). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">uLeft</td><td>Output horizontal image coordinate in the left image (float). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">vLeft</td><td>Output vertical image coordinate in the left image (float). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">uRight</td><td>Output horizontal image coordinate in the right image (float). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">vRight</td><td>Output vertical image coordinate in the right image (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#a637a730717e42939449cd9f09e20db26" title="Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point).">CameraModel::reproject()</a>, reproject(int&, int&, int&, int&) </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a626b8f54940ebc77ec504921004dda3a" name="a626b8f54940ebc77ec504921004dda3a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a626b8f54940ebc77ec504921004dda3a">◆ </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::StereoCameraModel::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>uLeft</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>vLeft</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>uRight</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>vRight</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Reprojects a 3D point of the left camera frame into both image planes (rounded to int). </p>
|
|
<p>This version of <code><a class="el" href="classrtabmap_1_1StereoCameraModel.html#a084e3e40c8b0caf66269d508a8fcffbc" title="Reprojects a 3D point of the left camera frame into both image planes (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 the left camera space. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">y</td><td>Y coordinate in the left camera space. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">z</td><td>Z coordinate in the left camera space (must be non-zero). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">uLeft</td><td>Output horizontal image coordinate in the left image (integer pixel). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">vLeft</td><td>Output vertical image coordinate in the left image (integer pixel). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">uRight</td><td>Output horizontal image coordinate in the right image (integer pixel). </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">vRight</td><td>Output vertical image coordinate in the right image (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#a637a730717e42939449cd9f09e20db26" title="Reprojects a 3D point in the camera frame (/camera_link) into 2D image coordinates (floating-point).">CameraModel::reproject()</a>, reproject(float&, float&, float&, float&) </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7afd347afb3909a2039f154b3a048035" name="a7afd347afb3909a2039f154b3a048035"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7afd347afb3909a2039f154b3a048035">◆ </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">const cv::Mat & rtabmap::StereoCameraModel::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><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> extrinsic rotation matrix. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00475">475</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a82d60ddca8d0cdbe939b043ed02334b6" name="a82d60ddca8d0cdbe939b043ed02334b6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a82d60ddca8d0cdbe939b043ed02334b6">◆ </a></span>T()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const cv::Mat & rtabmap::StereoCameraModel::T </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><a class="el" href="classrtabmap_1_1Stereo.html" title="Sparse stereo matching using block matching.">Stereo</a> extrinsic translation vector. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00476">476</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8ab6c698248837e4dcfe36c2e7b02546" name="a8ab6c698248837e4dcfe36c2e7b02546"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8ab6c698248837e4dcfe36c2e7b02546">◆ </a></span>E()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const cv::Mat & rtabmap::StereoCameraModel::E </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>Essential matrix. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00477">477</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1e4ffc9baa8dfee0a79ea32bac9b7c1c" name="a1e4ffc9baa8dfee0a79ea32bac9b7c1c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1e4ffc9baa8dfee0a79ea32bac9b7c1c">◆ </a></span>F()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const cv::Mat & rtabmap::StereoCameraModel::F </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>Fundamental matrix. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00478">478</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a264d57ca1e0f6b41d03ffe1d89afc382" name="a264d57ca1e0f6b41d03ffe1d89afc382"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a264d57ca1e0f6b41d03ffe1d89afc382">◆ </a></span>scale()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::StereoCameraModel::scale </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>scale</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Scales both cameras' calibration by a factor. </p>
|
|
<p>Scales the intrinsic parameters (focal lengths, principal points) and image sizes of both left and right cameras by the given scale factor. This is useful when working with downscaled or upscaled images.</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 note"><dt>Note</dt><dd>The baseline is not scaled, as it represents a physical distance between cameras. </dd>
|
|
<dd>
|
|
Only valid camera models are scaled. Invalid models are left unchanged. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac2fb1c489ae60bd7e4c104515db3c3a9" name="ac2fb1c489ae60bd7e4c104515db3c3a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac2fb1c489ae60bd7e4c104515db3c3a9">◆ </a></span>roi()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::StereoCameraModel::roi </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const cv::Rect & </td>
|
|
<td class="paramname"><em>roi</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Applies region-of-interest (ROI) cropping to both cameras. </p>
|
|
<p>Adjusts both camera models for a region of interest by shifting the principal points and updating the image sizes. This is useful when working with cropped or subwindowed images.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">roi</td><td>Region of interest rectangle. The top-left corner defines the offset for principal points.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The principal points (cx, cy) are adjusted by subtracting the ROI's top-left coordinates. </dd>
|
|
<dd>
|
|
The image size is set to the ROI size. </dd>
|
|
<dd>
|
|
Only valid camera models are adjusted. Invalid models are left unchanged. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aee77882ceca428a560f5fd3713a330fb" name="aee77882ceca428a560f5fd3713a330fb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aee77882ceca428a560f5fd3713a330fb">◆ </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::StereoCameraModel::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 from left camera to robot base. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00511">511</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5257cde3d51bbee7c51c3f36d0c7741f" name="a5257cde3d51bbee7c51c3f36d0c7741f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5257cde3d51bbee7c51c3f36d0c7741f">◆ </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::StereoCameraModel::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>Gets the local transform from left camera to robot base. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00516">516</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a506f83654d7f772a3743d24869c05742" name="a506f83654d7f772a3743d24869c05742"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a506f83654d7f772a3743d24869c05742">◆ </a></span>stereoTransform()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> rtabmap::StereoCameraModel::stereoTransform </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the stereo transform (left camera relative to right camera coordinate system). </p>
|
|
<p>The stereo transform brings points given in the first (left) camera's coordinate system to points in the second (right) camera's coordinate system. In more technical terms, it performs a change of basis from the first camera's coordinate system to the second camera's coordinate system. Due to its duality, it is equivalent to the position of the first camera with respect to the second camera coordinate system.</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> from left camera to right camera coordinate system. Returns identity if R_ or T_ are empty.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The transform is constructed from the stereo extrinsic parameters R_ and T_.</dd></dl>
|
|
<dl class="section user"><dt>Example:</dt><dd>For a stereo camera with a baseline of 15 cm, where the right camera is positioned to the right of the left camera, the x value of the returned <a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> would be -0.15 (negative because it represents the position of the left camera in the right camera's coordinate system). <div class="fragment"><div class="line"><a class="code hl_class" href="classrtabmap_1_1StereoCameraModel.html">StereoCameraModel</a> stereo(...);</div>
|
|
<div class="line"><a class="code hl_class" href="classrtabmap_1_1Transform.html">Transform</a> transform = stereo.stereoTransform();</div>
|
|
<div class="line"><span class="comment">// If baseline is 0.15 m, transform.x() would be approximately -0.15</span></div>
|
|
<div class="ttc" id="aclassrtabmap_1_1StereoCameraModel_html"><div class="ttname"><a href="classrtabmap_1_1StereoCameraModel.html">rtabmap::StereoCameraModel</a></div><div class="ttdoc">A class representing a calibrated stereo camera system.</div><div class="ttdef"><b>Definition</b> <a href="StereoCameraModel_8h_source.html#l00053">StereoCameraModel.h:54</a></div></div>
|
|
<div class="ttc" id="aclassrtabmap_1_1Transform_html"><div class="ttname"><a href="classrtabmap_1_1Transform.html">rtabmap::Transform</a></div><div class="ttdoc">Represents a 3D rigid body transformation (rotation + translation).</div><div class="ttdef"><b>Definition</b> <a href="Transform_8h_source.html#l00052">Transform.h:53</a></div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a064d29601c0ba13fc47584849e26b81b" name="a064d29601c0ba13fc47584849e26b81b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a064d29601c0ba13fc47584849e26b81b">◆ </a></span>left()</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_1CameraModel.html">CameraModel</a> & rtabmap::StereoCameraModel::left </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 left camera model. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00547">547</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab8061141407d8cc55d7f83211708af85" name="ab8061141407d8cc55d7f83211708af85"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab8061141407d8cc55d7f83211708af85">◆ </a></span>right()</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_1CameraModel.html">CameraModel</a> & rtabmap::StereoCameraModel::right </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 right camera model. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00551">551</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a799e3f787d015b5cbd0189768f5b673c" name="a799e3f787d015b5cbd0189768f5b673c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a799e3f787d015b5cbd0189768f5b673c">◆ </a></span>getLeftSuffix()</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::StereoCameraModel::getLeftSuffix </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>Gets the suffix used for the left camera calibration file. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00556">556</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3ecae21bbf6bc9914d0bb553c99f9e09" name="a3ecae21bbf6bc9914d0bb553c99f9e09"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3ecae21bbf6bc9914d0bb553c99f9e09">◆ </a></span>getRightSuffix()</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::StereoCameraModel::getRightSuffix </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>Gets the suffix used for the right camera calibration file. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="StereoCameraModel_8h_source.html#l00560">560</a> of file <a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li>corelib/include/rtabmap/core/<a class="el" href="StereoCameraModel_8h_source.html">StereoCameraModel.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_1StereoCameraModel.html">StereoCameraModel</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>
|