2026-08-06 22:56:24 +00:00
<!-- 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/clams/discrete_depth_distortion_model.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" >
2026-09-20 06:51:14 +00:00
< div id = "projectname" > RTAB-Map< span id = "projectnumber" >   0.23.12</ span >
2026-08-06 22:56:24 +00:00
</ 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 >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&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&dn=expat.txt MIT */
$ ( document ). ready ( function (){ initNavTree ( 'discrete__depth__distortion__model_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" > discrete_depth_distortion_model.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) 2013, Alex Teichman and Stephen Miller (Stanford University)</ 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 < organization> 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 " AS IS" 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 < COPYRIGHT HOLDER> 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 >< span class = "comment" > RTAB-Map integration: Mathieu Labbe</ span ></ div >
< div class = "line" >< a id = "l00028" name = "l00028" ></ a >< span class = "lineno" > 28</ span >< span class = "comment" > */</ span ></ div >
< div class = "line" >< a id = "l00029" name = "l00029" ></ a >< span class = "lineno" > 29</ span > </ div >
< div class = "line" >< a id = "l00030" name = "l00030" ></ a >< span class = "lineno" > 30</ span >< span class = "preprocessor" > #ifndef DISCRETE_DEPTH_DISTORTION_MODEL_H</ span ></ div >
< div class = "line" >< a id = "l00031" name = "l00031" ></ a >< span class = "lineno" > 31</ span >< span class = "preprocessor" > #define DISCRETE_DEPTH_DISTORTION_MODEL_H</ 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 < assert.h> </ span ></ div >
< div class = "line" >< a id = "l00034" name = "l00034" ></ a >< span class = "lineno" > 34</ span >< span class = "preprocessor" > #include < vector> </ span ></ div >
< div class = "line" >< a id = "l00035" name = "l00035" ></ a >< span class = "lineno" > 35</ span >< span class = "preprocessor" > #include < set> </ span ></ div >
< div class = "line" >< a id = "l00036" name = "l00036" ></ a >< span class = "lineno" > 36</ span >< span class = "preprocessor" > #include < Eigen/Core> </ span ></ div >
< div class = "line" >< a id = "l00037" name = "l00037" ></ a >< span class = "lineno" > 37</ span >< span class = "preprocessor" > #include < opencv2/opencv.hpp> </ span ></ div >
< div class = "line" >< a id = "l00038" name = "l00038" ></ a >< span class = "lineno" > 38</ span >< span class = "preprocessor" > #include < rtabmap/utilite/UMutex.h> </ span ></ div >
< div class = "line" >< a id = "l00039" name = "l00039" ></ a >< span class = "lineno" > 39</ span >< span class = "preprocessor" > #include " rtabmap/core/rtabmap_core_export.h" </ span > < span class = "comment" > // DLL export/import defines</ span ></ 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 >< span class = "keyword" > namespace </ span > clams</ div >
< div class = "line" >< a id = "l00042" name = "l00042" ></ a >< span class = "lineno" > 42</ span > {</ div >
< div class = "foldopen" id = "foldopen00043" data-start = "{" data-end = "};" >
< div class = "line" >< a id = "l00043" name = "l00043" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteFrustum.html" > 43</ a ></ span > < span class = "keyword" > class </ span > RTABMAP_CORE_EXPORT < a class = "code hl_class" href = "classclams_1_1DiscreteFrustum.html" > DiscreteFrustum</ a ></ div >
< div class = "line" >< a id = "l00044" name = "l00044" ></ a >< span class = "lineno" > 44</ span > {</ div >
< div class = "line" >< a id = "l00045" name = "l00045" ></ a >< span class = "lineno" > 45</ span > < span class = "keyword" > public</ span > :</ div >
< div class = "line" >< a id = "l00046" name = "l00046" ></ a >< span class = "lineno" > 46</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteFrustum.html" > DiscreteFrustum</ a > (< span class = "keywordtype" > int</ span > smoothing = 1, < span class = "keywordtype" > double</ span > bin_depth = 1.0, < span class = "keywordtype" > double</ span > max_dist = 10.0);</ div >
< div class = "line" >< a id = "l00049" name = "l00049" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteFrustum.html#aef183fc7d90c0a6ba3245bccf9fbb616" > 49</ a ></ span > < span class = "keywordtype" > void</ span > < a class = "code hl_function" href = "classclams_1_1DiscreteFrustum.html#aef183fc7d90c0a6ba3245bccf9fbb616" > addExample</ a > (< span class = "keywordtype" > double</ span > ground_truth, < span class = "keywordtype" > double</ span > measurement);</ div >
< div class = "line" >< a id = "l00050" name = "l00050" ></ a >< span class = "lineno" > 50</ span > < span class = "keywordtype" > int</ span > index(< span class = "keywordtype" > double</ span > z) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00051" name = "l00051" ></ a >< span class = "lineno" > 51</ span > < span class = "keywordtype" > void</ span > undistort(< span class = "keywordtype" > double</ span > * z) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00052" name = "l00052" ></ a >< span class = "lineno" > 52</ span > < span class = "keywordtype" > void</ span > interpolatedUndistort(< span class = "keywordtype" > double</ span > * z) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00053" name = "l00053" ></ a >< span class = "lineno" > 53</ span > < span class = "keywordtype" > void</ span > serialize(std::ostream& out, < span class = "keywordtype" > bool</ span > ascii) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00054" name = "l00054" ></ a >< span class = "lineno" > 54</ span > < span class = "keywordtype" > void</ span > deserialize(std::istream& in, < span class = "keywordtype" > bool</ span > ascii);</ div >
< div class = "line" >< a id = "l00055" name = "l00055" ></ a >< span class = "lineno" > 55</ span > </ div >
< div class = "line" >< a id = "l00056" name = "l00056" ></ a >< span class = "lineno" > 56</ span > < span class = "keyword" > protected</ span > :</ div >
< div class = "line" >< a id = "l00057" name = "l00057" ></ a >< span class = "lineno" > 57</ span > < span class = "keywordtype" > double</ span > max_dist_;</ div >
< div class = "line" >< a id = "l00058" name = "l00058" ></ a >< span class = "lineno" > 58</ span > < span class = "keywordtype" > int</ span > num_bins_;</ div >
< div class = "line" >< a id = "l00059" name = "l00059" ></ a >< span class = "lineno" > 59</ span > < span class = "keywordtype" > double</ span > bin_depth_;</ div >
< div class = "line" >< a id = "l00060" name = "l00060" ></ a >< span class = "lineno" > 60</ span > Eigen::VectorXf counts_;</ div >
< div class = "line" >< a id = "l00061" name = "l00061" ></ a >< span class = "lineno" > 61</ span > Eigen::VectorXf total_numerators_;</ div >
< div class = "line" >< a id = "l00062" name = "l00062" ></ a >< span class = "lineno" > 62</ span > Eigen::VectorXf total_denominators_;</ div >
< div class = "line" >< a id = "l00063" name = "l00063" ></ a >< span class = "lineno" > 63</ span > Eigen::VectorXf multipliers_;</ div >
< div class = "line" >< a id = "l00064" name = "l00064" ></ a >< span class = "lineno" > 64</ span > </ div >
< div class = "line" >< a id = "l00065" name = "l00065" ></ a >< span class = "lineno" > 65</ span > < span class = "keyword" > friend</ span > < span class = "keyword" > class </ span >< a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > ;</ div >
< div class = "line" >< a id = "l00066" name = "l00066" ></ a >< span class = "lineno" > 66</ span > };</ div >
</ div >
< div class = "line" >< a id = "l00067" name = "l00067" ></ a >< span class = "lineno" > 67</ span > </ div >
< div class = "foldopen" id = "foldopen00068" data-start = "{" data-end = "};" >
< div class = "line" >< a id = "l00068" name = "l00068" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html" > 68</ a ></ span > < span class = "keyword" > class </ span > RTABMAP_CORE_EXPORT < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a ></ div >
< div class = "line" >< a id = "l00069" name = "l00069" ></ a >< span class = "lineno" > 69</ span > {</ div >
< div class = "line" >< a id = "l00070" name = "l00070" ></ a >< span class = "lineno" > 70</ span > < span class = "keyword" > public</ span > :</ div >
< div class = "line" >< a id = "l00071" name = "l00071" ></ a >< span class = "lineno" > 71</ span > < span class = "comment" > // returns all divisors of num</ span ></ div >
< div class = "line" >< a id = "l00072" name = "l00072" ></ a >< span class = "lineno" > 72</ span > < span class = "keyword" > static</ span > std::set< size_t> getDivisors(< span class = "keyword" > const</ span > < span class = "keywordtype" > size_t</ span > & num);</ div >
< div class = "line" >< a id = "l00073" name = "l00073" ></ a >< span class = "lineno" > 73</ span > </ div >
< div class = "line" >< a id = "l00074" name = "l00074" ></ a >< span class = "lineno" > 74</ span > < span class = "comment" > // returns divisor from divisors closest to ref</ span ></ div >
< div class = "line" >< a id = "l00075" name = "l00075" ></ a >< span class = "lineno" > 75</ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > size_t</ span > getClosestToRef(< span class = "keyword" > const</ span > std::set< size_t> & divisors, < span class = "keyword" > const</ span > < span class = "keywordtype" > double</ span > & ref);</ div >
< div class = "line" >< a id = "l00076" name = "l00076" ></ a >< span class = "lineno" > 76</ span > </ div >
< div class = "line" >< a id = "l00077" name = "l00077" ></ a >< span class = "lineno" > 77</ span > < span class = "comment" > // sets bin_width and bin_height to appropriate values</ span ></ div >
< div class = "line" >< a id = "l00078" name = "l00078" ></ a >< span class = "lineno" > 78</ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > void</ span > getBinSize(< span class = "keyword" > const</ span > < span class = "keywordtype" > size_t</ span > & width, < span class = "keyword" > const</ span > < span class = "keywordtype" > size_t</ span > & height, < span class = "keywordtype" > size_t</ span > & bin_width, < span class = "keywordtype" > size_t</ span > & bin_height);</ div >
< div class = "line" >< a id = "l00079" name = "l00079" ></ a >< span class = "lineno" > 79</ span > </ div >
< div class = "line" >< a id = "l00080" name = "l00080" ></ a >< span class = "lineno" > 80</ span > < span class = "keyword" > public</ span > :</ div >
< div class = "line" >< a id = "l00081" name = "l00081" ></ a >< span class = "lineno" > 81</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > () :</ div >
< div class = "line" >< a id = "l00082" name = "l00082" ></ a >< span class = "lineno" > 82</ span > width_(0),</ div >
< div class = "line" >< a id = "l00083" name = "l00083" ></ a >< span class = "lineno" > 83</ span > height_(0),</ div >
< div class = "line" >< a id = "l00084" name = "l00084" ></ a >< span class = "lineno" > 84</ span > bin_width_(0),</ div >
< div class = "line" >< a id = "l00085" name = "l00085" ></ a >< span class = "lineno" > 85</ span > bin_height_(0),</ div >
< div class = "line" >< a id = "l00086" name = "l00086" ></ a >< span class = "lineno" > 86</ span > bin_depth_(0),</ div >
< div class = "line" >< a id = "l00087" name = "l00087" ></ a >< span class = "lineno" > 87</ span > num_bins_x_(0),</ div >
< div class = "line" >< a id = "l00088" name = "l00088" ></ a >< span class = "lineno" > 88</ span > num_bins_y_(0),</ div >
< div class = "line" >< a id = "l00089" name = "l00089" ></ a >< span class = "lineno" > 89</ span > training_samples_(0)</ div >
< div class = "line" >< a id = "l00090" name = "l00090" ></ a >< span class = "lineno" > 90</ span > {}</ div >
< div class = "line" >< a id = "l00091" name = "l00091" ></ a >< span class = "lineno" > 91</ span > < span class = "keyword" > virtual</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > ~DiscreteDepthDistortionModel</ a > ();</ div >
< div class = "line" >< a id = "l00092" name = "l00092" ></ a >< span class = "lineno" > 92</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > (< span class = "keywordtype" > int</ span > width, < span class = "keywordtype" > int</ span > height, < span class = "keywordtype" > int</ span > bin_width = 8, < span class = "keywordtype" > int</ span > bin_height = 6, < span class = "keywordtype" > double</ span > bin_depth = 2.0, < span class = "keywordtype" > int</ span > smoothing = 1, < span class = "keywordtype" > double</ span > max_depth = 10.0);</ div >
< div class = "line" >< a id = "l00093" name = "l00093" ></ a >< span class = "lineno" > 93</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > (< span class = "keyword" > const</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > & other);</ div >
< div class = "line" >< a id = "l00094" name = "l00094" ></ a >< span class = "lineno" > 94</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > & operator=(< span class = "keyword" > const</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteDepthDistortionModel.html" > DiscreteDepthDistortionModel</ a > & other);</ div >
< div class = "line" >< a id = "l00095" name = "l00095" ></ a >< span class = "lineno" > 95</ span > < span class = "keywordtype" > void</ span > undistort(cv::Mat & depth) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00098" name = "l00098" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#ab9b7555fbf710706d7b94dfcb9ed6399" > 98</ a ></ span > < span class = "keywordtype" > size_t</ span > < a class = "code hl_function" href = "classclams_1_1DiscreteDepthDistortionModel.html#ab9b7555fbf710706d7b94dfcb9ed6399" > accumulate</ a > (< span class = "keyword" > const</ span > cv::Mat& ground_truth, < span class = "keyword" > const</ span > cv::Mat& measurement);</ div >
< div class = "line" >< a id = "l00099" name = "l00099" ></ a >< span class = "lineno" > 99</ span > < span class = "keywordtype" > void</ span > addExample(< span class = "keywordtype" > int</ span > v, < span class = "keywordtype" > int</ span > u, < span class = "keywordtype" > double</ span > ground_truth, < span class = "keywordtype" > double</ span > measurement);</ div >
< div class = "line" >< a id = "l00100" name = "l00100" ></ a >< span class = "lineno" > 100</ span > < span class = "keywordtype" > void</ span > save(< span class = "keyword" > const</ span > std::string& path) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00101" name = "l00101" ></ a >< span class = "lineno" > 101</ span > < span class = "keywordtype" > void</ span > load(< span class = "keyword" > const</ span > std::string& path);</ div >
< div class = "line" >< a id = "l00102" name = "l00102" ></ a >< span class = "lineno" > 102</ span > < span class = "keywordtype" > void</ span > serialize(std::ostream& out, < span class = "keywordtype" > bool</ span > ascii) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00103" name = "l00103" ></ a >< span class = "lineno" > 103</ span > < span class = "keywordtype" > void</ span > deserialize(std::istream& in, < span class = "keywordtype" > bool</ span > ascii);</ div >
< div class = "line" >< a id = "l00104" name = "l00104" ></ a >< span class = "lineno" > 104</ span > cv::Mat visualize(< span class = "keyword" > const</ span > std::string& path = < span class = "stringliteral" > "" </ span > ) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00105" name = "l00105" ></ a >< span class = "lineno" > 105</ span > </ div >
< div class = "line" >< a id = "l00106" name = "l00106" ></ a >< span class = "lineno" > 106</ span > < span class = "keywordtype" > int</ span > getWidth()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > width_;}</ div >
< div class = "line" >< a id = "l00107" name = "l00107" ></ a >< span class = "lineno" > 107</ span > < span class = "keywordtype" > int</ span > getHeight()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > height_;}</ div >
< div class = "line" >< a id = "l00108" name = "l00108" ></ a >< span class = "lineno" > 108</ span > < span class = "keywordtype" > size_t</ span > getTrainingSamples()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > training_samples_;}</ div >
< div class = "line" >< a id = "l00109" name = "l00109" ></ a >< span class = "lineno" > 109</ span > < span class = "keywordtype" > bool</ span > isValid()< span class = "keyword" > const</ span ></ div >
< div class = "line" >< a id = "l00110" name = "l00110" ></ a >< span class = "lineno" > 110</ span >< span class = "keyword" > </ span > {</ div >
< div class = "line" >< a id = "l00111" name = "l00111" ></ a >< span class = "lineno" > 111</ span > < span class = "keywordflow" > return</ span > !frustums_.empty();</ div >
< div class = "line" >< a id = "l00112" name = "l00112" ></ a >< span class = "lineno" > 112</ span > }</ div >
< div class = "line" >< a id = "l00113" name = "l00113" ></ a >< span class = "lineno" > 113</ span > </ div >
< div class = "line" >< a id = "l00114" name = "l00114" ></ a >< span class = "lineno" > 114</ span > < span class = "keyword" > protected</ span > :</ div >
< div class = "line" >< a id = "l00116" name = "l00116" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#a7de0c7b8a5db34270645b6454f74392c" > 116</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#a7de0c7b8a5db34270645b6454f74392c" > width_</ a > ;</ div >
< div class = "line" >< a id = "l00118" name = "l00118" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#aa1b8d43b1fa2120bd4b711468d9457b1" > 118</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#aa1b8d43b1fa2120bd4b711468d9457b1" > height_</ a > ;</ div >
< div class = "line" >< a id = "l00120" name = "l00120" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#acbc26d0d0feddc1a7f27eca81b39dd20" > 120</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#acbc26d0d0feddc1a7f27eca81b39dd20" > bin_width_</ a > ;</ div >
< div class = "line" >< a id = "l00122" name = "l00122" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#ae74671d8a3dd71c5fa3f3b44d163ba0c" > 122</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#ae74671d8a3dd71c5fa3f3b44d163ba0c" > bin_height_</ a > ;</ div >
< div class = "line" >< a id = "l00124" name = "l00124" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#a1bd63eed7f9ca2759dcf4975b4f2f951" > 124</ a ></ span > < span class = "keywordtype" > double</ span > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#a1bd63eed7f9ca2759dcf4975b4f2f951" > bin_depth_</ a > ;</ div >
< div class = "line" >< a id = "l00125" name = "l00125" ></ a >< span class = "lineno" > 125</ span > < span class = "keywordtype" > int</ span > num_bins_x_;</ div >
< div class = "line" >< a id = "l00126" name = "l00126" ></ a >< span class = "lineno" > 126</ span > < span class = "keywordtype" > int</ span > num_bins_y_;</ div >
< div class = "line" >< a id = "l00128" name = "l00128" ></ a >< span class = "lineno" >< a class = "line" href = "classclams_1_1DiscreteDepthDistortionModel.html#a21e2cb0d6cb694629231405ca67f00a1" > 128</ a ></ span > std::vector< std::vector< DiscreteFrustum*> > < a class = "code hl_variable" href = "classclams_1_1DiscreteDepthDistortionModel.html#a21e2cb0d6cb694629231405ca67f00a1" > frustums_</ a > ;</ div >
< div class = "line" >< a id = "l00129" name = "l00129" ></ a >< span class = "lineno" > 129</ span > </ div >
< div class = "line" >< a id = "l00130" name = "l00130" ></ a >< span class = "lineno" > 130</ span > < span class = "keywordtype" > size_t</ span > training_samples_;</ div >
< div class = "line" >< a id = "l00131" name = "l00131" ></ a >< span class = "lineno" > 131</ span > </ div >
< div class = "line" >< a id = "l00132" name = "l00132" ></ a >< span class = "lineno" > 132</ span > < span class = "keywordtype" > void</ span > deleteFrustums();</ div >
< div class = "line" >< a id = "l00133" name = "l00133" ></ a >< span class = "lineno" > 133</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteFrustum.html" > DiscreteFrustum</ a > & frustum(< span class = "keywordtype" > int</ span > y, < span class = "keywordtype" > int</ span > x);</ div >
< div class = "line" >< a id = "l00134" name = "l00134" ></ a >< span class = "lineno" > 134</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classclams_1_1DiscreteFrustum.html" > DiscreteFrustum</ a > & frustum(< span class = "keywordtype" > int</ span > y, < span class = "keywordtype" > int</ span > x) < span class = "keyword" > const</ span > ;</ div >
< div class = "line" >< a id = "l00135" name = "l00135" ></ a >< span class = "lineno" > 135</ span > </ div >
< div class = "line" >< a id = "l00136" name = "l00136" ></ a >< span class = "lineno" > 136</ span > < a class = "code hl_class" href = "classUMutex.html" > UMutex</ a > mutex_;</ div >
< div class = "line" >< a id = "l00137" name = "l00137" ></ a >< span class = "lineno" > 137</ span > };</ div >
</ div >
< div class = "line" >< a id = "l00138" name = "l00138" ></ a >< span class = "lineno" > 138</ span > </ div >
< div class = "line" >< a id = "l00139" name = "l00139" ></ a >< span class = "lineno" > 139</ span > } < span class = "comment" > // namespace clams</ span ></ div >
< div class = "line" >< a id = "l00140" name = "l00140" ></ a >< span class = "lineno" > 140</ span > </ div >
< div class = "line" >< a id = "l00141" name = "l00141" ></ a >< span class = "lineno" > 141</ span >< span class = "preprocessor" > #endif </ span >< span class = "comment" > // DISCRETE_DEPTH_DISTORTION_MODEL_H</ span ></ div >
< div class = "ttc" id = "aclassUMutex_html" >< div class = "ttname" >< a href = "classUMutex.html" > UMutex</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "UMutex_8h_source.html#l00054" > UMutex.h:55</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html" > clams::DiscreteDepthDistortionModel</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00068" > discrete_depth_distortion_model.h:69</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_a1bd63eed7f9ca2759dcf4975b4f2f951" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#a1bd63eed7f9ca2759dcf4975b4f2f951" > clams::DiscreteDepthDistortionModel::bin_depth_</ a ></ div >< div class = "ttdeci" > double bin_depth_</ div >< div class = "ttdoc" > Depth of each bin in meters.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00124" > discrete_depth_distortion_model.h:124</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_a21e2cb0d6cb694629231405ca67f00a1" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#a21e2cb0d6cb694629231405ca67f00a1" > clams::DiscreteDepthDistortionModel::frustums_</ a ></ div >< div class = "ttdeci" > std::vector< std::vector< DiscreteFrustum * > > frustums_</ div >< div class = "ttdoc" > frustums_[y][x]</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00128" > discrete_depth_distortion_model.h:128</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_a7de0c7b8a5db34270645b6454f74392c" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#a7de0c7b8a5db34270645b6454f74392c" > clams::DiscreteDepthDistortionModel::width_</ a ></ div >< div class = "ttdeci" > int width_</ div >< div class = "ttdoc" > Image width.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00116" > discrete_depth_distortion_model.h:116</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_aa1b8d43b1fa2120bd4b711468d9457b1" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#aa1b8d43b1fa2120bd4b711468d9457b1" > clams::DiscreteDepthDistortionModel::height_</ a ></ div >< div class = "ttdeci" > int height_</ div >< div class = "ttdoc" > Image height.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00118" > discrete_depth_distortion_model.h:118</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_ab9b7555fbf710706d7b94dfcb9ed6399" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#ab9b7555fbf710706d7b94dfcb9ed6399" > clams::DiscreteDepthDistortionModel::accumulate</ a ></ div >< div class = "ttdeci" > size_t accumulate(const cv::Mat & ground_truth, const cv::Mat & measurement)</ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_acbc26d0d0feddc1a7f27eca81b39dd20" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#acbc26d0d0feddc1a7f27eca81b39dd20" > clams::DiscreteDepthDistortionModel::bin_width_</ a ></ div >< div class = "ttdeci" > int bin_width_</ div >< div class = "ttdoc" > Width of each bin in pixels.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00120" > discrete_depth_distortion_model.h:120</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteDepthDistortionModel_html_ae74671d8a3dd71c5fa3f3b44d163ba0c" >< div class = "ttname" >< a href = "classclams_1_1DiscreteDepthDistortionModel.html#ae74671d8a3dd71c5fa3f3b44d163ba0c" > clams::DiscreteDepthDistortionModel::bin_height_</ a ></ div >< div class = "ttdeci" > int bin_height_</ div >< div class = "ttdoc" > Height of each bin in pixels.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00122" > discrete_depth_distortion_model.h:122</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteFrustum_html" >< div class = "ttname" >< a href = "classclams_1_1DiscreteFrustum.html" > clams::DiscreteFrustum</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "discrete__depth__distortion__model_8h_source.html#l00043" > discrete_depth_distortion_model.h:44</ a ></ div ></ div >
< div class = "ttc" id = "aclassclams_1_1DiscreteFrustum_html_aef183fc7d90c0a6ba3245bccf9fbb616" >< div class = "ttname" >< a href = "classclams_1_1DiscreteFrustum.html#aef183fc7d90c0a6ba3245bccf9fbb616" > clams::DiscreteFrustum::addExample</ a ></ div >< div class = "ttdeci" > void addExample(double ground_truth, double measurement)</ 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" >< a class = "el" href = "dir_b3c8af46e4c1aa88d96b6d1863f8ab51.html" > clams</ a ></ li >< li class = "navelem" >< b > discrete_depth_distortion_model.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 >