Files
rtabmap/preview/pr-1492/api/latest/util2d_8h_source.html
T

347 lines
56 KiB
HTML
Raw Normal View History

<!-- 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: corelib/include/rtabmap/core/util2d.h Source File</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">&#160;0.23.10</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&amp;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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
</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&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('util2d_8h_source.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="headertitle"><div class="title">util2d.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">Copyright (c) 2010-2025, Mathieu Labbe - IntRoLab - Universite de Sherbrooke</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">All rights reserved.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">modification, are permitted provided that the following conditions are met:</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> * Redistributions in binary form must reproduce the above copyright</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> notice, this list of conditions and the following disclaimer in the</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> documentation and/or other materials provided with the distribution.</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * Neither the name of the Universite de Sherbrooke nor the</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> names of its contributors may be used to endorse or promote products</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> derived from this software without specific prior written permission.</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"></span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">*/</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#ifndef UTIL2D_H_</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#define UTIL2D_H_</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;rtabmap/core/rtabmap_core_export.h&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#include &lt;opencv2/core/core.hpp&gt;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#include &lt;rtabmap/core/Transform.h&gt;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include &lt;rtabmap/core/Parameters.h&gt;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#include &lt;rtabmap/core/CameraModel.h&gt;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacertabmap.html">rtabmap</a></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>{</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">namespace </span>util2d</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>{</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a179e07ca5bc9581ff4782ae8f9d33521"> 71</a></span><span class="keywordtype">float</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a179e07ca5bc9581ff4782ae8f9d33521">ssd</a>(<span class="keyword">const</span> cv::Mat &amp; windowLeft, <span class="keyword">const</span> cv::Mat &amp; windowRight);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a4cd865b8edc489f950b0c1b5e1a0c992"> 91</a></span><span class="keywordtype">float</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a4cd865b8edc489f950b0c1b5e1a0c992">sad</a>(<span class="keyword">const</span> cv::Mat &amp; windowLeft, <span class="keyword">const</span> cv::Mat &amp; windowRight);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a53e2ae078c4c5c997fda9f1b6d1dda33"> 125</a></span>std::vector&lt;cv::Point2f&gt; RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a53e2ae078c4c5c997fda9f1b6d1dda33">calcStereoCorrespondences</a>(</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">const</span> cv::Mat &amp; leftImage,</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> cv::Mat &amp; rightImage,</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; leftCorners,</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> std::vector&lt;unsigned char&gt; &amp; status,</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> cv::Size winSize = cv::Size(6,3),</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">int</span> maxLevel = 3,</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">int</span> iterations = 5,</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">float</span> minDisparity = 0.0f,</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">float</span> maxDisparity = 64.0f,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">bool</span> ssdApproach = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a3d01284751a6b46770a28a7f63576600"> 176</a></span><span class="keywordtype">void</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a3d01284751a6b46770a28a7f63576600">calcOpticalFlowPyrLKStereo</a>( cv::InputArray _prevImg, cv::InputArray _nextImg,</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> cv::InputArray _prevPts, cv::InputOutputArray _nextPts,</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> cv::OutputArray _status, cv::OutputArray _err,</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> cv::Size winSize = cv::Size(15,3), <span class="keywordtype">int</span> maxLevel = 3,</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> cv::TermCriteria criteria = cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 30, 0.01),</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordtype">int</span> flags = 0, <span class="keywordtype">double</span> minEigThreshold = 1e-4 );</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#ad7ea8d1905c7143d376c57c9e22dcea5"> 212</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#ad7ea8d1905c7143d376c57c9e22dcea5">disparityFromStereoImages</a>(</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">const</span> cv::Mat &amp; leftImage,</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">const</span> cv::Mat &amp; rightImage,</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> &amp; parameters = <a class="code hl_typedef" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a>());</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a110359c4884579e1c7b68d8baa7acb6c"> 237</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a110359c4884579e1c7b68d8baa7acb6c">depthFromDisparity</a>(<span class="keyword">const</span> cv::Mat &amp; disparity,</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordtype">float</span> fx, <span class="keywordtype">float</span> baseline,</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordtype">int</span> type = CV_32FC1); <span class="comment">// CV_32FC1 or CV_16UC1</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#aacf89454b054d86b53a8038c8a404b50"> 263</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#aacf89454b054d86b53a8038c8a404b50">depthFromStereoImages</a>(</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">const</span> cv::Mat &amp; leftImage,</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">const</span> cv::Mat &amp; rightImage,</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; leftCorners,</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">float</span> fx,</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordtype">float</span> baseline,</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordtype">int</span> flowWinSize = 9,</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">int</span> flowMaxLevel = 4,</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordtype">int</span> flowIterations = 20,</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordtype">double</span> flowEps = 0.02);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a4f10f8038c62a97d3a79bd2dc5bf2c58"> 298</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a4f10f8038c62a97d3a79bd2dc5bf2c58">disparityFromStereoCorrespondences</a>(</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">const</span> cv::Size &amp; disparitySize,</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; leftCorners,</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; rightCorners,</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">const</span> std::vector&lt;unsigned char&gt; &amp; mask);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> </div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#ae6548e6246eceaff5dcc9ee30514eac5"> 326</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#ae6548e6246eceaff5dcc9ee30514eac5">depthFromStereoCorrespondences</a>(</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keyword">const</span> cv::Mat &amp; leftImage,</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; leftCorners,</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">const</span> std::vector&lt;cv::Point2f&gt; &amp; rightCorners,</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">const</span> std::vector&lt;unsigned char&gt; &amp; mask,</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordtype">float</span> fx, <span class="keywordtype">float</span> baseline);</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a6740b13198a2c437ab51d8e0503f2d33"> 354</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a6740b13198a2c437ab51d8e0503f2d33">cvtDepthFromFloat</a>(<span class="keyword">const</span> cv::Mat &amp; depth32F);</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a0e4631bed561b3a694a1a65853221f75"> 373</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a0e4631bed561b3a694a1a65853221f75">cvtDepthToFloat</a>(<span class="keyword">const</span> cv::Mat &amp; depth16U);</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a48b07b02efba21a914db10e832589aba"> 400</a></span><span class="keywordtype">float</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a48b07b02efba21a914db10e832589aba">getDepth</a>(</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">const</span> cv::Mat &amp; depthImage,</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y,</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <span class="keywordtype">bool</span> smoothing,</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">float</span> depthErrorRatio = 0.02f, <span class="comment">//ratio</span></div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">bool</span> estWithNeighborsIfNull = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"><a class="line" href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478"> 423</a></span>cv::Rect RTABMAP_CORE_EXPORT <a class="code hl_function" href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478">computeRoi</a>(<span class="keyword">const</span> cv::Mat &amp; image, <span class="keyword">const</span> std::string &amp; roiRatios);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="group__RoiComputation.html#ga2f0ffb8f6882e28709b03446d50250bb"> 433</a></span>cv::Rect RTABMAP_CORE_EXPORT <a class="code hl_function" href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478">computeRoi</a>(<span class="keyword">const</span> cv::Size &amp; imageSize, <span class="keyword">const</span> std::string &amp; roiRatios);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="group__RoiComputation.html#ga81d9f49d117d02494c7ff57f5d426b15"> 443</a></span>cv::Rect RTABMAP_CORE_EXPORT <a class="code hl_function" href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478">computeRoi</a>(<span class="keyword">const</span> cv::Mat &amp; image, <span class="keyword">const</span> std::vector&lt;float&gt; &amp; roiRatios);</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> </div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"><a class="line" href="group__RoiComputation.html#ga56fed8ce688e8e9eb3b1f74ad0febcef"> 454</a></span>cv::Rect RTABMAP_CORE_EXPORT <a class="code hl_function" href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478">computeRoi</a>(<span class="keyword">const</span> cv::Size &amp; imageSize, <span class="keyword">const</span> std::vector&lt;float&gt; &amp; roiRatios);</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> </div>
<span class="comment">// end of RoiComputation group</span><div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a0b545a9f852684afb0a6d8f835f9eaf2"> 472</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a0b545a9f852684afb0a6d8f835f9eaf2">decimate</a>(<span class="keyword">const</span> cv::Mat &amp; image, <span class="keywordtype">int</span> d);</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#afc241016af8396edf5228dbe9e80ee8d"> 490</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#afc241016af8396edf5228dbe9e80ee8d">interpolate</a>(<span class="keyword">const</span> cv::Mat &amp; image, <span class="keywordtype">int</span> factor, <span class="keywordtype">float</span> depthErrorRatio = 0.02f);</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a48a7e15282f392e77561dd96ed3320f9"> 515</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a48a7e15282f392e77561dd96ed3320f9">registerDepth</a>(</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="keyword">const</span> cv::Mat &amp; depth,</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keyword">const</span> cv::Mat &amp; depthK,</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keyword">const</span> cv::Size &amp; colorSize,</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <span class="keyword">const</span> cv::Mat &amp; colorK,</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">const</span> <a class="code hl_class" href="classrtabmap_1_1Transform.html">rtabmap::Transform</a> &amp; transform);</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a48a7e15282f392e77561dd96ed3320f9">registerDepth</a>(</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">const</span> cv::Mat &amp; depth,</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">const</span> cv::Mat &amp; confidence,</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keyword">const</span> cv::Mat &amp; depthK,</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">const</span> cv::Size &amp; colorSize,</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="keyword">const</span> cv::Mat &amp; colorK,</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">const</span> <a class="code hl_class" href="classrtabmap_1_1Transform.html">rtabmap::Transform</a> &amp; transform,</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> cv::Mat &amp; registeredConfidence);</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#aeb3dee2cf6484f0b224d4687899cb004"> 547</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#aeb3dee2cf6484f0b224d4687899cb004">fillDepthHoles</a>(</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">const</span> cv::Mat &amp; depth,</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">int</span> maximumHoleSize = 1,</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <span class="keywordtype">float</span> errorRatio = 0.02f);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#afc6c9b3442c64ef2061365ead3923228"> 579</a></span><span class="keywordtype">void</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#afc6c9b3442c64ef2061365ead3923228">fillRegisteredDepthHoles</a>(</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> cv::Mat &amp; depthRegistered,</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordtype">bool</span> vertical,</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="keywordtype">bool</span> horizontal,</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordtype">bool</span> fillDoubleHoles = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a076914fde23d1323fccf71a794b9bc51"> 608</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a076914fde23d1323fccf71a794b9bc51">fastBilateralFiltering</a>(</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">const</span> cv::Mat &amp; depth,</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="keywordtype">float</span> sigmaS = 15.0f,</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordtype">float</span> sigmaR = 0.05f,</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="keywordtype">bool</span> earlyDivision = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a7788d4dabf084959aa69162d5dbb2d2e"> 629</a></span><span class="keywordtype">void</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a7788d4dabf084959aa69162d5dbb2d2e">depthBleedingFiltering</a>(</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> cv::Mat &amp; depth,</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordtype">float</span> maxDepthError);</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> </div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a89ec90b2659c764ba22b5c36d729c8f8"> 654</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a89ec90b2659c764ba22b5c36d729c8f8">brightnessAndContrastAuto</a>(</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">const</span> cv::Mat &amp; src,</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="keyword">const</span> cv::Mat &amp; mask,</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordtype">float</span> clipLowHistPercent=0,</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordtype">float</span> clipHighHistPercent=0,</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordtype">float</span> * alphaOut = 0,</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordtype">float</span> * betaOut = 0);</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> </div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#ac38e8ed586d24c4b9fe72d64afeb9583"> 680</a></span>cv::Mat RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#ac38e8ed586d24c4b9fe72d64afeb9583">exposureFusion</a>(</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <span class="keyword">const</span> std::vector&lt;cv::Mat&gt; &amp; images);</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#ac29ac5b8bed26a5299d378708170dd11"> 701</a></span><span class="keywordtype">void</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#ac29ac5b8bed26a5299d378708170dd11">HSVtoRGB</a>( <span class="keywordtype">float</span> *r, <span class="keywordtype">float</span> *g, <span class="keywordtype">float</span> *b, <span class="keywordtype">float</span> h, <span class="keywordtype">float</span> s, <span class="keywordtype">float</span> v );</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> </div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#aafa9a426c8e7dd0359adf40e1b45ee1c"> 722</a></span><span class="keywordtype">void</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#aafa9a426c8e7dd0359adf40e1b45ee1c">NMS</a>(</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <span class="keyword">const</span> std::vector&lt;cv::KeyPoint&gt; &amp; ptsIn,</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keyword">const</span> cv::Mat &amp; descriptorsIn,</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> std::vector&lt;cv::KeyPoint&gt; &amp; ptsOut,</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> cv::Mat &amp; descriptorsOut,</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keywordtype">int</span> dist_thresh, <span class="keywordtype">int</span> img_width, <span class="keywordtype">int</span> img_height);</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> </div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#aa6957971e17f27bb066efe036d80fd46"> 757</a></span>std::vector&lt;int&gt; RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#aa6957971e17f27bb066efe036d80fd46">SSC</a>(</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keyword">const</span> std::vector&lt;cv::KeyPoint&gt; &amp; keypoints,</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <span class="keywordtype">int</span> maxKeypoints,</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keywordtype">float</span> tolerance,</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keywordtype">int</span> cols,</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="keywordtype">int</span> rows,</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="keyword">const</span> std::vector&lt;int&gt; &amp; indx = {});</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> </div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"><a class="line" href="namespacertabmap_1_1util2d.html#a1577494ad9730181d5b768ca8237d5dd"> 789</a></span><span class="keywordtype">bool</span> RTABMAP_CORE_EXPORT <a class="code hl_function" href="namespacertabmap_1_1util2d.html#a1577494ad9730181d5b768ca8237d5dd">rotateImagesUpsideUpIfNecessary</a>(</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <a class="code hl_class" href="classrtabmap_1_1CameraModel.html">CameraModel</a> &amp; model,</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> cv::Mat &amp; rgb,</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> cv::Mat &amp; depth);</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> </div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span>} <span class="comment">// namespace util2d</span></div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span>} <span class="comment">// namespace rtabmap</span></div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> </div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span><span class="preprocessor">#endif </span><span class="comment">/* UTIL2D_H_ */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassrtabmap_1_1CameraModel_html"><div class="ttname"><a href="classrtabmap_1_1CameraModel.html">rtabmap::CameraModel</a></div><div class="ttdoc">Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...</div><div class="ttdef"><b>Definition</b> <a href="CameraModel_8h_source.html#l00052">CameraModel.h:53</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 class="ttc" id="agroup__RoiComputation_html_ga79d3f93673fb236980f0be532695f478"><div class="ttname"><a href="group__RoiComputation.html#ga79d3f93673fb236980f0be532695f478">rtabmap::util2d::computeRoi</a></div><div class="ttdeci">cv::Rect RTABMAP_CORE_EXPORT computeRoi(const cv::Mat &amp;image, const std::string &amp;roiRatios)</div><div class="ttdoc">Computes a region of interest (ROI) in the image using string-defined ratios.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a076914fde23d1323fccf71a794b9bc51"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a076914fde23d1323fccf71a794b9bc51">rtabmap::util2d::fastBilateralFiltering</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT fastBilateralFiltering(const cv::Mat &amp;depth, float sigmaS=15.0f, float sigmaR=0.05f, bool earlyDivision=false)</div><div class="ttdoc">Applies a 2D fast bilateral filter to a depth image.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a0b545a9f852684afb0a6d8f835f9eaf2"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a0b545a9f852684afb0a6d8f835f9eaf2">rtabmap::util2d::decimate</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT decimate(const cv::Mat &amp;image, int d)</div><div class="ttdoc">Downsamples an image by a given decimation factor.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a0e4631bed561b3a694a1a65853221f75"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a0e4631bed561b3a694a1a65853221f75">rtabmap::util2d::cvtDepthToFloat</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT cvtDepthToFloat(const cv::Mat &amp;depth16U)</div><div class="ttdoc">Converts a 16-bit unsigned depth image (in millimeters) to a 32-bit float depth image (in meters).</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a110359c4884579e1c7b68d8baa7acb6c"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a110359c4884579e1c7b68d8baa7acb6c">rtabmap::util2d::depthFromDisparity</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT depthFromDisparity(const cv::Mat &amp;disparity, float fx, float baseline, int type=CV_32FC1)</div><div class="ttdoc">Converts a disparity map to a depth map using stereo camera parameters.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a1577494ad9730181d5b768ca8237d5dd"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a1577494ad9730181d5b768ca8237d5dd">rtabmap::util2d::rotateImagesUpsideUpIfNecessary</a></div><div class="ttdeci">bool RTABMAP_CORE_EXPORT rotateImagesUpsideUpIfNecessary(CameraModel &amp;model, cv::Mat &amp;rgb, cv::Mat &amp;depth)</div><div class="ttdoc">Rotates the input RGB and depth images to make them appear upright based on the camera's roll angle.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a179e07ca5bc9581ff4782ae8f9d33521"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a179e07ca5bc9581ff4782ae8f9d33521">rtabmap::util2d::ssd</a></div><div class="ttdeci">float RTABMAP_CORE_EXPORT ssd(const cv::Mat &amp;windowLeft, const cv::Mat &amp;windowRight)</div><div class="ttdoc">Computes the Sum of Squared Differences (SSD) between two image patches.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a3d01284751a6b46770a28a7f63576600"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a3d01284751a6b46770a28a7f63576600">rtabmap::util2d::calcOpticalFlowPyrLKStereo</a></div><div class="ttdeci">void RTABMAP_CORE_EXPORT calcOpticalFlowPyrLKStereo(cv::InputArray _prevImg, cv::InputArray _nextImg, cv::InputArray _prevPts, cv::InputOutputArray _nextPts, cv::OutputArray _status, cv::OutputArray _err, cv::Size winSize=cv::Size(15, 3), int maxLevel=3, cv::TermCriteria criteria=cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThreshold=1e-4)</div><div class="ttdoc">Computes sparse optical flow using a pyramidal Lucas-Kanade method constrained to the x-axis.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a48a7e15282f392e77561dd96ed3320f9"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a48a7e15282f392e77561dd96ed3320f9">rtabmap::util2d::registerDepth</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT registerDepth(const cv::Mat &amp;depth, const cv::Mat &amp;depthK, const cv::Size &amp;colorSize, const cv::Mat &amp;colorK, const rtabmap::Transform &amp;transform)</div><div class="ttdoc">Registers a depth image to a different camera frame (typically RGB).</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a48b07b02efba21a914db10e832589aba"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a48b07b02efba21a914db10e832589aba">rtabmap::util2d::getDepth</a></div><div class="ttdeci">float RTABMAP_CORE_EXPORT getDepth(const cv::Mat &amp;depthImage, float x, float y, bool smoothing, float depthErrorRatio=0.02f, bool estWithNeighborsIfNull=false)</div><div class="ttdoc">Retrieves a depth value from a depth image at a subpixel coordinate.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a4cd865b8edc489f950b0c1b5e1a0c992"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a4cd865b8edc489f950b0c1b5e1a0c992">rtabmap::util2d::sad</a></div><div class="ttdeci">float RTABMAP_CORE_EXPORT sad(const cv::Mat &amp;windowLeft, const cv::Mat &amp;windowRight)</div><div class="ttdoc">Computes the Sum of Absolute Differences (SAD) between two image patches.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a4f10f8038c62a97d3a79bd2dc5bf2c58"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a4f10f8038c62a97d3a79bd2dc5bf2c58">rtabmap::util2d::disparityFromStereoCorrespondences</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT disparityFromStereoCorrespondences(const cv::Size &amp;disparitySize, const std::vector&lt; cv::Point2f &gt; &amp;leftCorners, const std::vector&lt; cv::Point2f &gt; &amp;rightCorners, const std::vector&lt; unsigned char &gt; &amp;mask)</div><div class="ttdoc">Computes a disparity map from stereo correspondences between two images.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a53e2ae078c4c5c997fda9f1b6d1dda33"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a53e2ae078c4c5c997fda9f1b6d1dda33">rtabmap::util2d::calcStereoCorrespondences</a></div><div class="ttdeci">std::vector&lt; cv::Point2f &gt; RTABMAP_CORE_EXPORT calcStereoCorrespondences(const cv::Mat &amp;leftImage, const cv::Mat &amp;rightImage, const std::vector&lt; cv::Point2f &gt; &amp;leftCorners, std::vector&lt; unsigned char &gt; &amp;status, cv::Size winSize=cv::Size(6, 3), int maxLevel=3, int iterations=5, float minDisparity=0.0f, float maxDisparity=64.0f, bool ssdApproach=true)</div><div class="ttdoc">Computes stereo correspondences between left and right images using a pyramidal window-based matching...</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a6740b13198a2c437ab51d8e0503f2d33"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a6740b13198a2c437ab51d8e0503f2d33">rtabmap::util2d::cvtDepthFromFloat</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT cvtDepthFromFloat(const cv::Mat &amp;depth32F)</div><div class="ttdoc">Converts a 32-bit float depth image (in meters) to a 16-bit unsigned depth image (in millimeters).</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a7788d4dabf084959aa69162d5dbb2d2e"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a7788d4dabf084959aa69162d5dbb2d2e">rtabmap::util2d::depthBleedingFiltering</a></div><div class="ttdeci">void RTABMAP_CORE_EXPORT depthBleedingFiltering(cv::Mat &amp;depth, float maxDepthError)</div><div class="ttdoc">Filters out depth bleeding artifacts in a depth image.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_a89ec90b2659c764ba22b5c36d729c8f8"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#a89ec90b2659c764ba22b5c36d729c8f8">rtabmap::util2d::brightnessAndContrastAuto</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT brightnessAndContrastAuto(const cv::Mat &amp;src, const cv::Mat &amp;mask, float clipLowHistPercent=0, float clipHighHistPercent=0, float *alphaOut=0, float *betaOut=0)</div><div class="ttdoc">Automatic brightness and contrast optimization with optional histogram clipping.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_aa6957971e17f27bb066efe036d80fd46"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#aa6957971e17f27bb066efe036d80fd46">rtabmap::util2d::SSC</a></div><div class="ttdeci">std::vector&lt; int &gt; RTABMAP_CORE_EXPORT SSC(const std::vector&lt; cv::KeyPoint &gt; &amp;keypoints, int maxKeypoints, float tolerance, int cols, int rows, const std::vector&lt; int &gt; &amp;indx={})</div><div class="ttdoc">Applies the SSC (Suppression via Square Covering) algorithm to spatially select keypoints.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_aacf89454b054d86b53a8038c8a404b50"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#aacf89454b054d86b53a8038c8a404b50">rtabmap::util2d::depthFromStereoImages</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT depthFromStereoImages(const cv::Mat &amp;leftImage, const cv::Mat &amp;rightImage, const std::vector&lt; cv::Point2f &gt; &amp;leftCorners, float fx, float baseline, int flowWinSize=9, int flowMaxLevel=4, int flowIterations=20, double flowEps=0.02)</div><div class="ttdoc">Computes a depth map from stereo image pairs using optical flow tracking.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_aafa9a426c8e7dd0359adf40e1b45ee1c"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#aafa9a426c8e7dd0359adf40e1b45ee1c">rtabmap::util2d::NMS</a></div><div class="ttdeci">void RTABMAP_CORE_EXPORT NMS(const std::vector&lt; cv::KeyPoint &gt; &amp;ptsIn, const cv::Mat &amp;descriptorsIn, std::vector&lt; cv::KeyPoint &gt; &amp;ptsOut, cv::Mat &amp;descriptorsOut, int dist_thresh, int img_width, int img_height)</div><div class="ttdoc">Applies Non-Maximum Suppression (NMS) to a set of keypoints.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_ac29ac5b8bed26a5299d378708170dd11"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#ac29ac5b8bed26a5299d378708170dd11">rtabmap::util2d::HSVtoRGB</a></div><div class="ttdeci">void RTABMAP_CORE_EXPORT HSVtoRGB(float *r, float *g, float *b, float h, float s, float v)</div><div class="ttdoc">Converts a color from HSV (Hue, Saturation, Value) to RGB.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_ac38e8ed586d24c4b9fe72d64afeb9583"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#ac38e8ed586d24c4b9fe72d64afeb9583">rtabmap::util2d::exposureFusion</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT exposureFusion(const std::vector&lt; cv::Mat &gt; &amp;images)</div><div class="ttdoc">Performs exposure fusion on a set of input images.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_ad7ea8d1905c7143d376c57c9e22dcea5"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#ad7ea8d1905c7143d376c57c9e22dcea5">rtabmap::util2d::disparityFromStereoImages</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT disparityFromStereoImages(const cv::Mat &amp;leftImage, const cv::Mat &amp;rightImage, const ParametersMap &amp;parameters=ParametersMap())</div><div class="ttdoc">Computes the disparity map from a pair of stereo images.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_ae6548e6246eceaff5dcc9ee30514eac5"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#ae6548e6246eceaff5dcc9ee30514eac5">rtabmap::util2d::depthFromStereoCorrespondences</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT depthFromStereoCorrespondences(const cv::Mat &amp;leftImage, const std::vector&lt; cv::Point2f &gt; &amp;leftCorners, const std::vector&lt; cv::Point2f &gt; &amp;rightCorners, const std::vector&lt; unsigned char &gt; &amp;mask, float fx, float baseline)</div><div class="ttdoc">Computes a sparse depth map from corresponding stereo feature points.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_aeb3dee2cf6484f0b224d4687899cb004"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#aeb3dee2cf6484f0b224d4687899cb004">rtabmap::util2d::fillDepthHoles</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT fillDepthHoles(const cv::Mat &amp;depth, int maximumHoleSize=1, float errorRatio=0.02f)</div><div class="ttdoc">Fills holes in the depth image using linear interpolation.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_afc241016af8396edf5228dbe9e80ee8d"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#afc241016af8396edf5228dbe9e80ee8d">rtabmap::util2d::interpolate</a></div><div class="ttdeci">cv::Mat RTABMAP_CORE_EXPORT interpolate(const cv::Mat &amp;image, int factor, float depthErrorRatio=0.02f)</div><div class="ttdoc">Upsamples a depth image using bilinear interpolation with depth consistency check.</div></div>
<div class="ttc" id="anamespacertabmap_1_1util2d_html_afc6c9b3442c64ef2061365ead3923228"><div class="ttname"><a href="namespacertabmap_1_1util2d.html#afc6c9b3442c64ef2061365ead3923228">rtabmap::util2d::fillRegisteredDepthHoles</a></div><div class="ttdeci">void RTABMAP_CORE_EXPORT fillRegisteredDepthHoles(cv::Mat &amp;depthRegistered, bool vertical, bool horizontal, bool fillDoubleHoles=false)</div><div class="ttdoc">Fill holes in a registered depth image using linear interpolation.</div></div>
<div class="ttc" id="anamespacertabmap_html"><div class="ttname"><a href="namespacertabmap.html">rtabmap</a></div><div class="ttdef"><b>Definition</b> <a href="BayesFilter_8h_source.html#l00039">BayesFilter.h:39</a></div></div>
<div class="ttc" id="anamespacertabmap_html_ad08b6f1796a27dd7316c99c385e2cc55"><div class="ttname"><a href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">rtabmap::ParametersMap</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; ParametersMap</div><div class="ttdoc">Parameter keys mapped to their values, as used by every configurable class (see Parameters).</div><div class="ttdef"><b>Definition</b> <a href="Parameters_8h_source.html#l00044">Parameters.h:44</a></div></div>
</div><!-- fragment --></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="dir_04d49acea3c42cab2afcd35cb2f2a48f.html">corelib</a></li><li class="navelem"><a class="el" href="dir_e996b11fd4b3a747423759b16a8ba4a6.html">include</a></li><li class="navelem"><a class="el" href="dir_ff01f7bc5399ccf9ff1cc91d1f45726a.html">rtabmap</a></li><li class="navelem"><a class="el" href="dir_884419f21456e80aa47bc1d0c2ab0140.html">core</a></li><li class="navelem"><b>util2d.h</b></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>