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: rtabmap::FeatureBA Class Reference</ title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "jquery.js" ></ script >
< script type = "text/javascript" src = "dynsections.js" ></ script >
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 >
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 ( 'classrtabmap_1_1FeatureBA.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 = "summary" >
< a href = "#pub-methods" > Public Member Functions</ a > |
< a href = "#pub-attribs" > Public Attributes</ a > |
< a href = "classrtabmap_1_1FeatureBA-members.html" > List of all members</ a > </ div >
< div class = "headertitle" >< div class = "title" > rtabmap::FeatureBA Class Reference</ div ></ div >
</ div > <!--header-->
< div class = "contents" >
< p > A single bundle adjustment feature observation: one keypoint seen in one frame.
< a href = "classrtabmap_1_1FeatureBA.html#details" > More...</ a ></ p >
< p >< code > #include < < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > > </ code ></ p >
< table class = "memberdecls" >
< tr class = "heading" >< td colspan = "2" >< h2 class = "groupheader" >< a id = "pub-methods" name = "pub-methods" ></ a >
Public Member Functions</ h2 ></ td ></ tr >
< tr class = "memitem:a9e3336b09b6913c0b922e6b2f194ba76" id = "r_a9e3336b09b6913c0b922e6b2f194ba76" >< td class = "memItemLeft" align = "right" valign = "top" >   </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html#a9e3336b09b6913c0b922e6b2f194ba76" > FeatureBA</ a > (const cv::KeyPoint & kptIn, const float & depthIn=0.0f, const cv::Mat & descriptorIn=cv::Mat(), int cameraIndexIn=0)</ td ></ tr >
< tr class = "separator:a9e3336b09b6913c0b922e6b2f194ba76" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
</ table >< table class = "memberdecls" >
< tr class = "heading" >< td colspan = "2" >< h2 class = "groupheader" >< a id = "pub-attribs" name = "pub-attribs" ></ a >
Public Attributes</ h2 ></ td ></ tr >
< tr class = "memitem:a2bea5690d958d81f5edfa6df954d4a8b" id = "r_a2bea5690d958d81f5edfa6df954d4a8b" >< td class = "memItemLeft" align = "right" valign = "top" > cv::KeyPoint  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > kpt</ a ></ td ></ tr >
< tr class = "memdesc:a2bea5690d958d81f5edfa6df954d4a8b" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" > 2D image keypoint. < br /></ td ></ tr >
< tr class = "separator:a2bea5690d958d81f5edfa6df954d4a8b" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ad48600a5b6ed17e7713f1485c4317948" id = "r_ad48600a5b6ed17e7713f1485c4317948" >< td class = "memItemLeft" align = "right" valign = "top" > float  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > depth</ a ></ td ></ tr >
< tr class = "memdesc:ad48600a5b6ed17e7713f1485c4317948" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" > Depth at < a class = "el" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > kpt</ a > in meters, or 0 if unknown (monocular). < br /></ td ></ tr >
< tr class = "separator:ad48600a5b6ed17e7713f1485c4317948" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:a7db630b2f418b05d2fbd772d1caadf48" id = "r_a7db630b2f418b05d2fbd772d1caadf48" >< td class = "memItemLeft" align = "right" valign = "top" > cv::Mat  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > descriptor</ a ></ td ></ tr >
< tr class = "memdesc:a7db630b2f418b05d2fbd772d1caadf48" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" > Optional descriptor for the keypoint (used when re-matching is enabled). < br /></ td ></ tr >
< tr class = "separator:a7db630b2f418b05d2fbd772d1caadf48" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:a8db953b6f93249d5c28c25073cd4e095" id = "r_a8db953b6f93249d5c28c25073cd4e095" >< td class = "memItemLeft" align = "right" valign = "top" > int  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > cameraIndex</ a ></ td ></ tr >
< tr class = "memdesc:a8db953b6f93249d5c28c25073cd4e095" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" > Index into the frame's camera model list for multi-camera rigs. < br /></ td ></ tr >
< tr class = "separator:a8db953b6f93249d5c28c25073cd4e095" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
</ table >
< a name = "details" id = "details" ></ a >< h2 class = "groupheader" > Detailed Description</ h2 >
< div class = "textblock" >< p > A single bundle adjustment feature observation: one keypoint seen in one frame. </ p >
< p > Used as the per-frame value in the < code > wordReferences</ code > map (< code > < wordId, < frameId, < a class = "el" href = "classrtabmap_1_1FeatureBA.html" title = "A single bundle adjustment feature observation: one keypoint seen in one frame." > FeatureBA</ a > >> </ code > ) passed to < a class = "el" href = "classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263" > Optimizer::optimizeBA()</ a > . < a class = "el" href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > depth</ a > is in meters when available (RGB-D / stereo with disparity) or 0 if unknown (monocular). < a class = "el" href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > descriptor</ a > and < a class = "el" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > cameraIndex</ a > are optional; < a class = "el" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > cameraIndex</ a > selects which < a class = "el" href = "classrtabmap_1_1CameraModel.html" > CameraModel</ a > of a multi-camera rig the keypoint belongs to. </ p >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00050" > 50</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >< h2 class = "groupheader" > Constructor & Destructor Documentation</ h2 >
< a id = "a9e3336b09b6913c0b922e6b2f194ba76" name = "a9e3336b09b6913c0b922e6b2f194ba76" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a9e3336b09b6913c0b922e6b2f194ba76" > ◆  </ a ></ span > FeatureBA()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > rtabmap::FeatureBA::FeatureBA </ td >
< td > (</ td >
< td class = "paramtype" > const cv::KeyPoint &  </ td >
< td class = "paramname" >< em > kptIn</ em > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > const float &  </ td >
< td class = "paramname" >< em > depthIn</ em > = < code > 0.0f</ code > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > const cv::Mat &  </ td >
< td class = "paramname" >< em > descriptorIn</ em > = < code > cv::Mat()</ code > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > int  </ td >
< td class = "paramname" >< em > cameraIndexIn</ em > = < code > 0</ code >   </ td >
</ tr >
< tr >
< td ></ td >
< td > )</ td >
< td ></ td >< td ></ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00053" > 53</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >
</ div >
< h2 class = "groupheader" > Member Data Documentation</ h2 >
< a id = "a2bea5690d958d81f5edfa6df954d4a8b" name = "a2bea5690d958d81f5edfa6df954d4a8b" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a2bea5690d958d81f5edfa6df954d4a8b" > ◆  </ a ></ span > kpt</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > cv::KeyPoint rtabmap::FeatureBA::kpt</ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > 2D image keypoint. </ p >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00061" > 61</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >
</ div >
< a id = "ad48600a5b6ed17e7713f1485c4317948" name = "ad48600a5b6ed17e7713f1485c4317948" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#ad48600a5b6ed17e7713f1485c4317948" > ◆  </ a ></ span > depth</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > float rtabmap::FeatureBA::depth</ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Depth at < a class = "el" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > kpt</ a > in meters, or 0 if unknown (monocular). </ p >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00062" > 62</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >
</ div >
< a id = "a7db630b2f418b05d2fbd772d1caadf48" name = "a7db630b2f418b05d2fbd772d1caadf48" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a7db630b2f418b05d2fbd772d1caadf48" > ◆  </ a ></ span > descriptor</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > cv::Mat rtabmap::FeatureBA::descriptor</ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Optional descriptor for the keypoint (used when re-matching is enabled). </ p >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00063" > 63</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >
</ div >
< a id = "a8db953b6f93249d5c28c25073cd4e095" name = "a8db953b6f93249d5c28c25073cd4e095" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a8db953b6f93249d5c28c25073cd4e095" > ◆  </ a ></ span > cameraIndex</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int rtabmap::FeatureBA::cameraIndex</ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Index into the frame's camera model list for multi-camera rigs. </ p >
< p class = "definition" > Definition at line < a class = "el" href = "Optimizer_8h_source.html#l00064" > 64</ a > of file < a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a > .</ p >
</ div >
</ div >
< hr /> The documentation for this class was generated from the following file:< ul >
< li > corelib/include/rtabmap/core/< a class = "el" href = "Optimizer_8h_source.html" > Optimizer.h</ a ></ li >
</ ul >
</ 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 = "namespacertabmap.html" > rtabmap</ a ></ li >< li class = "navelem" >< a class = "el" href = "classrtabmap_1_1FeatureBA.html" > FeatureBA</ a ></ li >
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" >< img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" /></ a > 1.9.8 </ li >
</ ul >
</ div >
2026-08-02 01:36:11 +00:00
</ body >
</ html >