2026-08-02 01:36:11 +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/util3d_motion_estimation.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 >
2026-08-02 07:56:38 +00:00
< 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 >
2026-08-02 01:36:11 +00:00
< 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" />
2026-08-02 17:35:14 +00:00
< link href = "doxygen-awesome.css" rel = "stylesheet" type = "text/css" />
< link href = "custom.css" rel = "stylesheet" type = "text/css" />
2026-08-02 01:36:11 +00:00
< 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 >
2026-08-02 17:35:14 +00:00
< script type = "text/javascript" src = "doxygen-awesome-darkmode-toggle.js" ></ script >
< script type = "text/javascript" > DoxygenAwesomeDarkModeToggle . init ();</ script >
2026-08-02 01:36:11 +00:00
</ head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
< div id = "projectname" > RTAB-Map< span id = "projectnumber" >   0.23.10</ span >
</ div >
2026-08-02 07:56:38 +00:00
< div id = "projectbrief" > Real-Time Appearance-Based Mapping</ div >
2026-08-02 01:36:11 +00:00
</ 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 >
2026-08-02 07:56:38 +00:00
</ 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 ( 'util3d__motion__estimation_8h_source.html' , '' ); initResizable (); });
/* @license-end */
</ script >
< div id = "doc-content" >
2026-08-02 01:36:11 +00:00
<!-- 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" > util3d_motion_estimation.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-2016, 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 " 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 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 UTIL3D_MOTION_ESTIMATION_H_</ span ></ div >
< div class = "line" >< a id = "l00029" name = "l00029" ></ a >< span class = "lineno" > 29</ span >< span class = "preprocessor" > #define UTIL3D_MOTION_ESTIMATION_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 < rtabmap/core/rtabmap_core_export.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 < rtabmap/core/Transform.h> </ span ></ div >
< div class = "line" >< a id = "l00034" name = "l00034" ></ a >< span class = "lineno" > 34</ span >< span class = "preprocessor" > #include < rtabmap/core/CameraModel.h> </ span ></ div >
< div class = "line" >< a id = "l00035" name = "l00035" ></ a >< span class = "lineno" > 35</ span > </ div >
< div class = "line" >< a id = "l00036" name = "l00036" ></ a >< span class = "lineno" > 36</ span >< span class = "keyword" > namespace </ span >< a class = "code hl_namespace" href = "namespacertabmap.html" > rtabmap</ a ></ div >
< div class = "line" >< a id = "l00037" name = "l00037" ></ a >< span class = "lineno" > 37</ 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 > util3d</ 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 >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00065" name = "l00065" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#a5f95aa913b08b0d0f12e9fc02b087692" > 65</ a ></ span >< span class = "keywordtype" > void</ span > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#a5f95aa913b08b0d0f12e9fc02b087692" > setRansacDeterministicSeed</ a > (< span class = "keywordtype" > bool</ span > enable);</ div >
< div class = "line" >< a id = "l00066" name = "l00066" ></ a >< span class = "lineno" > 66</ span > </ div >
< div class = "line" >< a id = "l00068" name = "l00068" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#ad918f390fa8b4d331561d5a00d61ea7b" > 68</ a ></ span >< span class = "keywordtype" > bool</ span > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#ad918f390fa8b4d331561d5a00d61ea7b" > ransacDeterministicSeedEnabled</ a > ();</ div >
< div class = "line" >< a id = "l00069" name = "l00069" ></ a >< span class = "lineno" > 69</ span > </ div >
< div class = "line" >< a id = "l00105" name = "l00105" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#a94321442a82f05368f8fd9c9a998284e" > 105</ a ></ span >< a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#a94321442a82f05368f8fd9c9a998284e" > estimateMotion3DTo2D</ a > (</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00106" name = "l00106" ></ a >< span class = "lineno" > 106</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3A,</ div >
< div class = "line" >< a id = "l00107" name = "l00107" ></ a >< span class = "lineno" > 107</ span > < span class = "keyword" > const</ span > std::map< int, cv::KeyPoint> & words2B,</ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00108" name = "l00108" ></ a >< span class = "lineno" > 108</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1CameraModel.html" > CameraModel</ a > & cameraModel,</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00109" name = "l00109" ></ a >< span class = "lineno" > 109</ span > < span class = "keywordtype" > int</ span > minInliers = 10,</ div >
< div class = "line" >< a id = "l00110" name = "l00110" ></ a >< span class = "lineno" > 110</ span > < span class = "keywordtype" > int</ span > iterations = 100,</ div >
< div class = "line" >< a id = "l00111" name = "l00111" ></ a >< span class = "lineno" > 111</ span > < span class = "keywordtype" > double</ span > reprojError = 5.,</ div >
< div class = "line" >< a id = "l00112" name = "l00112" ></ a >< span class = "lineno" > 112</ span > < span class = "keywordtype" > int</ span > flagsPnP = 0,</ div >
< div class = "line" >< a id = "l00113" name = "l00113" ></ a >< span class = "lineno" > 113</ span > < span class = "keywordtype" > int</ span > pnpRefineIterations = 1,</ div >
< div class = "line" >< a id = "l00114" name = "l00114" ></ a >< span class = "lineno" > 114</ span > < span class = "keywordtype" > int</ span > varianceMedianRatio = 4,</ div >
< div class = "line" >< a id = "l00115" name = "l00115" ></ a >< span class = "lineno" > 115</ span > < span class = "keywordtype" > float</ span > maxVariance = 0,</ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00116" name = "l00116" ></ a >< span class = "lineno" > 116</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > & guess = < a class = "code hl_function" href = "classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2" > Transform::getIdentity</ a > (),</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00117" name = "l00117" ></ a >< span class = "lineno" > 117</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3B = std::map< int, cv::Point3f> (),</ div >
< div class = "line" >< a id = "l00118" name = "l00118" ></ a >< span class = "lineno" > 118</ span > cv::Mat * covariance = 0, < span class = "comment" > // mean reproj error if words3B is not set</ span ></ div >
< div class = "line" >< a id = "l00119" name = "l00119" ></ a >< span class = "lineno" > 119</ span > std::vector< int> * matchesOut = 0,</ div >
< div class = "line" >< a id = "l00120" name = "l00120" ></ a >< span class = "lineno" > 120</ span > std::vector< int> * inliersOut = 0,</ div >
< div class = "line" >< a id = "l00121" name = "l00121" ></ a >< span class = "lineno" > 121</ span > < span class = "keywordtype" > bool</ span > splitLinearCovarianceComponents = < span class = "keyword" > false</ span > );</ div >
< div class = "line" >< a id = "l00122" name = "l00122" ></ a >< span class = "lineno" > 122</ span > </ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00157" name = "l00157" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#a3fffe99bf880decfb8a9f60ff7b882bd" > 157</ a ></ span >< a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#a94321442a82f05368f8fd9c9a998284e" > estimateMotion3DTo2D</ a > (</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00158" name = "l00158" ></ a >< span class = "lineno" > 158</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3A,</ div >
< div class = "line" >< a id = "l00159" name = "l00159" ></ a >< span class = "lineno" > 159</ span > < span class = "keyword" > const</ span > std::map< int, cv::KeyPoint> & words2B,</ div >
< div class = "line" >< a id = "l00160" name = "l00160" ></ a >< span class = "lineno" > 160</ span > < span class = "keyword" > const</ span > std::vector< CameraModel> & cameraModels,</ div >
< div class = "line" >< a id = "l00161" name = "l00161" ></ a >< span class = "lineno" > 161</ span > < span class = "keywordtype" > unsigned</ span > < span class = "keywordtype" > int</ span > samplingPolicy,</ div >
< div class = "line" >< a id = "l00162" name = "l00162" ></ a >< span class = "lineno" > 162</ span > < span class = "keywordtype" > int</ span > minInliers,</ div >
< div class = "line" >< a id = "l00163" name = "l00163" ></ a >< span class = "lineno" > 163</ span > < span class = "keywordtype" > int</ span > iterations,</ div >
< div class = "line" >< a id = "l00164" name = "l00164" ></ a >< span class = "lineno" > 164</ span > < span class = "keywordtype" > double</ span > reprojError,</ div >
< div class = "line" >< a id = "l00165" name = "l00165" ></ a >< span class = "lineno" > 165</ span > < span class = "keywordtype" > int</ span > flagsPnP,</ div >
< div class = "line" >< a id = "l00166" name = "l00166" ></ a >< span class = "lineno" > 166</ span > < span class = "keywordtype" > int</ span > refineIterations,</ div >
< div class = "line" >< a id = "l00167" name = "l00167" ></ a >< span class = "lineno" > 167</ span > < span class = "keywordtype" > int</ span > varianceMedianRatio,</ div >
< div class = "line" >< a id = "l00168" name = "l00168" ></ a >< span class = "lineno" > 168</ span > < span class = "keywordtype" > float</ span > maxVariance,</ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00169" name = "l00169" ></ a >< span class = "lineno" > 169</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > & guess,</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00170" name = "l00170" ></ a >< span class = "lineno" > 170</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3B,</ div >
< div class = "line" >< a id = "l00171" name = "l00171" ></ a >< span class = "lineno" > 171</ span > cv::Mat * covariance,</ div >
< div class = "line" >< a id = "l00172" name = "l00172" ></ a >< span class = "lineno" > 172</ span > std::vector< std::vector< int> > * matchesOut,</ div >
< div class = "line" >< a id = "l00173" name = "l00173" ></ a >< span class = "lineno" > 173</ span > std::vector< std::vector< int> > * inliersOut,</ div >
< div class = "line" >< a id = "l00174" name = "l00174" ></ a >< span class = "lineno" > 174</ span > < span class = "keywordtype" > bool</ span > splitLinearCovarianceComponents);</ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00179" name = "l00179" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#a0a1a57cb2be47c4b6670672b2a0a5a93" > 179</ a ></ span >< a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#a94321442a82f05368f8fd9c9a998284e" > estimateMotion3DTo2D</ a > (</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00180" name = "l00180" ></ a >< span class = "lineno" > 180</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3A,</ div >
< div class = "line" >< a id = "l00181" name = "l00181" ></ a >< span class = "lineno" > 181</ span > < span class = "keyword" > const</ span > std::map< int, cv::KeyPoint> & words2B,</ div >
< div class = "line" >< a id = "l00182" name = "l00182" ></ a >< span class = "lineno" > 182</ span > < span class = "keyword" > const</ span > std::vector< CameraModel> & cameraModels,</ div >
< div class = "line" >< a id = "l00183" name = "l00183" ></ a >< span class = "lineno" > 183</ span > < span class = "keywordtype" > unsigned</ span > < span class = "keywordtype" > int</ span > samplingPolicy = 0, < span class = "comment" > // 0=AUTO, 1=ANY, 2=HOMOGENEOUS</ span ></ div >
< div class = "line" >< a id = "l00184" name = "l00184" ></ a >< span class = "lineno" > 184</ span > < span class = "keywordtype" > int</ span > minInliers = 10,</ div >
< div class = "line" >< a id = "l00185" name = "l00185" ></ a >< span class = "lineno" > 185</ span > < span class = "keywordtype" > int</ span > iterations = 100,</ div >
< div class = "line" >< a id = "l00186" name = "l00186" ></ a >< span class = "lineno" > 186</ span > < span class = "keywordtype" > double</ span > reprojError = 5.,</ div >
< div class = "line" >< a id = "l00187" name = "l00187" ></ a >< span class = "lineno" > 187</ span > < span class = "keywordtype" > int</ span > flagsPnP = 0,</ div >
< div class = "line" >< a id = "l00188" name = "l00188" ></ a >< span class = "lineno" > 188</ span > < span class = "keywordtype" > int</ span > pnpRefineIterations = 1,</ div >
< div class = "line" >< a id = "l00189" name = "l00189" ></ a >< span class = "lineno" > 189</ span > < span class = "keywordtype" > int</ span > varianceMedianRatio = 4,</ div >
< div class = "line" >< a id = "l00190" name = "l00190" ></ a >< span class = "lineno" > 190</ span > < span class = "keywordtype" > float</ span > maxVariance = 0,</ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00191" name = "l00191" ></ a >< span class = "lineno" > 191</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > & guess = < a class = "code hl_function" href = "classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2" > Transform::getIdentity</ a > (),</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00192" name = "l00192" ></ a >< span class = "lineno" > 192</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3B = std::map< int, cv::Point3f> (),</ div >
< div class = "line" >< a id = "l00193" name = "l00193" ></ a >< span class = "lineno" > 193</ span > cv::Mat * covariance = 0, < span class = "comment" > // mean reproj error if words3B is not set</ span ></ div >
< div class = "line" >< a id = "l00194" name = "l00194" ></ a >< span class = "lineno" > 194</ span > std::vector< int> * matchesOut = 0,</ div >
< div class = "line" >< a id = "l00195" name = "l00195" ></ a >< span class = "lineno" > 195</ span > std::vector< int> * inliersOut = 0,</ div >
< div class = "line" >< a id = "l00196" name = "l00196" ></ a >< span class = "lineno" > 196</ span > < span class = "keywordtype" > bool</ span > splitLinearCovarianceComponents = < span class = "keyword" > false</ span > );</ div >
< div class = "line" >< a id = "l00197" name = "l00197" ></ a >< span class = "lineno" > 197</ span > </ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00219" name = "l00219" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#a717fefeecb331b1dddc3ec3b4f6beb3a" > 219</ a ></ span >< a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#a717fefeecb331b1dddc3ec3b4f6beb3a" > estimateMotion3DTo3D</ a > (</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00220" name = "l00220" ></ a >< span class = "lineno" > 220</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3A,</ div >
< div class = "line" >< a id = "l00221" name = "l00221" ></ a >< span class = "lineno" > 221</ span > < span class = "keyword" > const</ span > std::map< int, cv::Point3f> & words3B,</ div >
< div class = "line" >< a id = "l00222" name = "l00222" ></ a >< span class = "lineno" > 222</ span > < span class = "keywordtype" > int</ span > minInliers = 10,</ div >
< div class = "line" >< a id = "l00223" name = "l00223" ></ a >< span class = "lineno" > 223</ span > < span class = "keywordtype" > double</ span > inliersDistance = 0.1,</ div >
< div class = "line" >< a id = "l00224" name = "l00224" ></ a >< span class = "lineno" > 224</ span > < span class = "keywordtype" > int</ span > iterations = 100,</ div >
< div class = "line" >< a id = "l00225" name = "l00225" ></ a >< span class = "lineno" > 225</ span > < span class = "keywordtype" > int</ span > refineIterations = 5,</ div >
< div class = "line" >< a id = "l00226" name = "l00226" ></ a >< span class = "lineno" > 226</ span > cv::Mat * covariance = 0,</ div >
< div class = "line" >< a id = "l00227" name = "l00227" ></ a >< span class = "lineno" > 227</ span > std::vector< int> * matchesOut = 0,</ div >
< div class = "line" >< a id = "l00228" name = "l00228" ></ a >< span class = "lineno" > 228</ span > std::vector< int> * inliersOut = 0);</ div >
< div class = "line" >< a id = "l00229" name = "l00229" ></ a >< span class = "lineno" > 229</ span > </ div >
2026-08-02 07:56:38 +00:00
< div class = "line" >< a id = "l00260" name = "l00260" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html#ad426e396a196d6f69a004bb55982f9f7" > 260</ a ></ span >< span class = "keywordtype" > void</ span > RTABMAP_CORE_EXPORT < a class = "code hl_function" href = "namespacertabmap_1_1util3d.html#ad426e396a196d6f69a004bb55982f9f7" > solvePnPRansac</ a > (</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00261" name = "l00261" ></ a >< span class = "lineno" > 261</ span > < span class = "keyword" > const</ span > std::vector< cv::Point3f> & objectPoints,</ div >
< div class = "line" >< a id = "l00262" name = "l00262" ></ a >< span class = "lineno" > 262</ span > < span class = "keyword" > const</ span > std::vector< cv::Point2f> & imagePoints,</ div >
< div class = "line" >< a id = "l00263" name = "l00263" ></ a >< span class = "lineno" > 263</ span > < span class = "keyword" > const</ span > cv::Mat & cameraMatrix,</ div >
< div class = "line" >< a id = "l00264" name = "l00264" ></ a >< span class = "lineno" > 264</ span > < span class = "keyword" > const</ span > cv::Mat & distCoeffs,</ div >
< div class = "line" >< a id = "l00265" name = "l00265" ></ a >< span class = "lineno" > 265</ span > cv::Mat & rvec,</ div >
< div class = "line" >< a id = "l00266" name = "l00266" ></ a >< span class = "lineno" > 266</ span > cv::Mat & tvec,</ div >
< div class = "line" >< a id = "l00267" name = "l00267" ></ a >< span class = "lineno" > 267</ span > < span class = "keywordtype" > bool</ span > useExtrinsicGuess,</ div >
< div class = "line" >< a id = "l00268" name = "l00268" ></ a >< span class = "lineno" > 268</ span > < span class = "keywordtype" > int</ span > iterationsCount,</ div >
< div class = "line" >< a id = "l00269" name = "l00269" ></ a >< span class = "lineno" > 269</ span > < span class = "keywordtype" > float</ span > reprojectionError,</ div >
< div class = "line" >< a id = "l00270" name = "l00270" ></ a >< span class = "lineno" > 270</ span > < span class = "keywordtype" > int</ span > minInliersCount,</ div >
< div class = "line" >< a id = "l00271" name = "l00271" ></ a >< span class = "lineno" > 271</ span > std::vector< int> & inliers,</ div >
< div class = "line" >< a id = "l00272" name = "l00272" ></ a >< span class = "lineno" > 272</ span > < span class = "keywordtype" > int</ span > flags,</ div >
< div class = "line" >< a id = "l00273" name = "l00273" ></ a >< span class = "lineno" > 273</ span > < span class = "keywordtype" > int</ span > refineIterations = 1,</ div >
< div class = "line" >< a id = "l00274" name = "l00274" ></ a >< span class = "lineno" > 274</ span > < span class = "keywordtype" > float</ span > refineSigma = 3.0f);</ div >
< div class = "line" >< a id = "l00275" name = "l00275" ></ a >< span class = "lineno" > 275</ span > </ div >
< div class = "line" >< a id = "l00276" name = "l00276" ></ a >< span class = "lineno" > 276</ span > } < span class = "comment" > // namespace util3d</ span ></ div >
< div class = "line" >< a id = "l00277" name = "l00277" ></ a >< span class = "lineno" > 277</ span > } < span class = "comment" > // namespace rtabmap</ span ></ div >
< div class = "line" >< a id = "l00278" name = "l00278" ></ a >< span class = "lineno" > 278</ span > </ div >
< div class = "line" >< a id = "l00279" name = "l00279" ></ a >< span class = "lineno" > 279</ span >< span class = "preprocessor" > #endif </ span >< span class = "comment" > /* UTIL3D_TRANSFORMS_H_ */</ span >< span class = "preprocessor" ></ span ></ div >
2026-08-02 07:56:38 +00:00
< 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 >
2026-08-02 01:36:11 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html_a8ea4368f2018d751d2733038081d56a2" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2" > rtabmap::Transform::getIdentity</ a ></ div >< div class = "ttdeci" > static Transform getIdentity()</ div >< div class = "ttdoc" > Returns identity transform.</ div ></ div >
2026-08-02 07:56:38 +00:00
< div class = "ttc" id = "anamespacertabmap_1_1util3d_html_a5f95aa913b08b0d0f12e9fc02b087692" >< div class = "ttname" >< a href = "namespacertabmap_1_1util3d.html#a5f95aa913b08b0d0f12e9fc02b087692" > rtabmap::util3d::setRansacDeterministicSeed</ a ></ div >< div class = "ttdeci" > void RTABMAP_CORE_EXPORT setRansacDeterministicSeed(bool enable)</ div >< div class = "ttdoc" > Toggle a deterministic seed for OpenGV's internal RANSAC RNG.</ div ></ div >
< div class = "ttc" id = "anamespacertabmap_1_1util3d_html_a717fefeecb331b1dddc3ec3b4f6beb3a" >< div class = "ttname" >< a href = "namespacertabmap_1_1util3d.html#a717fefeecb331b1dddc3ec3b4f6beb3a" > rtabmap::util3d::estimateMotion3DTo3D</ a ></ div >< div class = "ttdeci" > Transform RTABMAP_CORE_EXPORT estimateMotion3DTo3D(const std::map< int, cv::Point3f > & words3A, const std::map< int, cv::Point3f > & words3B, int minInliers=10, double inliersDistance=0.1, int iterations=100, int refineIterations=5, cv::Mat *covariance=0, std::vector< int > *matchesOut=0, std::vector< int > *inliersOut=0)</ div >< div class = "ttdoc" > Estimates the 3D rigid transformation between two sets of 3D points.</ div ></ div >
< div class = "ttc" id = "anamespacertabmap_1_1util3d_html_a94321442a82f05368f8fd9c9a998284e" >< div class = "ttname" >< a href = "namespacertabmap_1_1util3d.html#a94321442a82f05368f8fd9c9a998284e" > rtabmap::util3d::estimateMotion3DTo2D</ a ></ div >< div class = "ttdeci" > Transform RTABMAP_CORE_EXPORT estimateMotion3DTo2D(const std::map< int, cv::Point3f > & words3A, const std::map< int, cv::KeyPoint > & words2B, const CameraModel & cameraModel, int minInliers=10, int iterations=100, double reprojError=5., int flagsPnP=0, int pnpRefineIterations=1, int varianceMedianRatio=4, float maxVariance=0, const Transform & guess=Transform::getIdentity(), const std::map< int, cv::Point3f > & words3B=std::map< int, cv::Point3f > (), cv::Mat *covariance=0, std::vector< int > *matchesOut=0, std::vector< int > *inliersOut=0, bool splitLinearCovarianceComponents=false)</ div >< div class = "ttdoc" > Estimates a 6-DOF camera transform from 3D-2D point correspondences using PnP RANSAC.</ div ></ div >
< div class = "ttc" id = "anamespacertabmap_1_1util3d_html_ad426e396a196d6f69a004bb55982f9f7" >< div class = "ttname" >< a href = "namespacertabmap_1_1util3d.html#ad426e396a196d6f69a004bb55982f9f7" > rtabmap::util3d::solvePnPRansac</ a ></ div >< div class = "ttdeci" > void RTABMAP_CORE_EXPORT solvePnPRansac(const std::vector< cv::Point3f > & objectPoints, const std::vector< cv::Point2f > & imagePoints, const cv::Mat & cameraMatrix, const cv::Mat & distCoeffs, cv::Mat & rvec, cv::Mat & tvec, bool useExtrinsicGuess, int iterationsCount, float reprojectionError, int minInliersCount, std::vector< int > & inliers, int flags, int refineIterations=1, float refineSigma=3.0f)</ div >< div class = "ttdoc" > Estimates the camera pose using the PnP RANSAC algorithm and optionally refines it.</ div ></ div >
< div class = "ttc" id = "anamespacertabmap_1_1util3d_html_ad918f390fa8b4d331561d5a00d61ea7b" >< div class = "ttname" >< a href = "namespacertabmap_1_1util3d.html#ad918f390fa8b4d331561d5a00d61ea7b" > rtabmap::util3d::ransacDeterministicSeedEnabled</ a ></ div >< div class = "ttdeci" > bool RTABMAP_CORE_EXPORT ransacDeterministicSeedEnabled()</ div ></ div >
2026-08-02 01:36:11 +00:00
< 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 > <!-- fragment --> </ div > <!-- contents -->
2026-08-02 07:56:38 +00:00
</ div > <!-- doc-content -->
2026-08-02 01:36:11 +00:00
<!-- start footer part -->
2026-08-02 07:56:38 +00:00
< 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 > util3d_motion_estimation.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 >
2026-08-02 01:36:11 +00:00
</ body >
</ html >