日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视觉SLAM十四讲中的修改代码总结

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视觉SLAM十四讲中的修改代码总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

Chapter 3

visualizeGeometry

Chapter 4

Chapter 6

關于cmake_modules

g2o_curve_fitting

Chapter 7

Chapter 12


首先,關于數據集下載,直接下載又慢又容易失敗;現在我用 free download manager(迅雷更好,但我是ubuntu)。


高翔的《視覺SLAM十四講》提供了很多代碼,但所用的庫版本比較老,我用新版本庫在編譯的時候常會遇到問題。在此記錄我的修改。持續更新ing....

我的版本:opencv3.4.1

Chapter 3

visualizeGeometry

CMakeLists.txt: C++版本改為14。注:C++版本的標記似乎是有兩種寫法:

set( CMAKE_CXX_FLAGS "-std=c++14 -O3" ) set( CMAKE_CXX_STANDARD 14)

Chapter 4

sophus庫的安裝:

SLAM十四講中Sophus庫的make報錯 lvalue required as left operand of assignment unit_complex_.real()_supercolar的博客-CSDN博客

Chapter 6

關于cmake_modules

從第6講開始,代碼里開始有cmake_modules文件夾。這個與 find_packages 有關,find_package是怎么find的呢?它有兩個模式:

  • module模式:在 CMAKE_MODULE_NAME 下搜索 Find<package_name>.cmake,然后讀取變量等等。十四講的代碼采取的就是這個方法,作者先將 cmake_modules 文件夾路徑放入 CMAKE_MODULE_NAME,然后建立 Find<package_name>.cmake 文件,并在里面寫明 include 和 lib 的路徑。
  • config模式:一般庫在安裝后都會有 <package_name>Config.cmake 或 <lower_package_name>-config.cmake 文件,而此模式就是去搜索這個文件并讀取。
  • 我在自己電腦里搜索了一下,Ceres, g2o, OpenCV 等都有自己的<package_name>Config.cmake文件,所以實際上很多章節的cmake_modules文件夾都可以刪掉,讓find_package直接使用第二個模式。

    一個例外是,第7講的g2o里include了外部的庫CSparse,它沒有<package_name>Config.cmake,所以需要自己寫Find<package_name>.cmake。不過這個文件不用自己寫,它也在OpenCV庫的安裝包里:Downloads/g2o-master/cmake_modules/FindCSparse.cmake,直接把文件copy過來就行(十四講代碼就是這么做的)。

    g2o_curve_fitting

    CMakeLists.txt: C++版本改為14。

    另外,新版本的opencv中的一些普通指針改為了智能指針unique_ptr。unique_ptr中,為了防止重復構造,delete了拷貝構造函數、賦值函數,用移動構造、移動賦值替代——所以代碼中會涉及到把左值引用通過std::move()轉換為右值引用。

    //<------------------old version---------------------->// // Block::LinearSolverType* linearSolver = new g2o::LinearSolverDense<Block::PoseMatrixType>(); // 線性方程求解器 // Block* solver_ptr = new Block( linearSolver ); // 矩陣塊求解器 // g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( solver_ptr ); //<------------------new version---------------------->// std::unique_ptr<Block::LinearSolverType> linearSolver(new g2o::LinearSolverDense<Block::PoseMatrixType>()); std::unique_ptr<Block> solver_ptr(new Block(std::move(linearSolver)));// 矩陣塊求解器 g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( std::move(solver_ptr) );

    疑問:g2o的變量和其他的不一樣?

    Chapter 7

    同Chapter6。VertexSBAPointXYZ 改為 VertexPointXYZ。

    Chapter 12

    gen_vocab_large.cpp: associate.py的對齊操作不是必須,把相關內容替換成自己數據集路徑即可。

    總結

    以上是生活随笔為你收集整理的视觉SLAM十四讲中的修改代码总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 极品尤物一区二区 | 欧美资源在线观看 | 一区二区三区不卡视频在线观看 | 激情春色网| 黄色片网站国产 | 国产高清在线免费 | 久久午夜精品 | 国产情侣久久 | 日本久久综合网 | 成人h动漫精品一区二区 | 日韩久久一区二区三区 | 欧美成人黄色小说 | 伊人国产女 | 亚洲老老头同性老头交j | 亚洲品质自拍视频网站 | 国产精品综合 | 蜜臀国产AV天堂久久无码蜜臀 | 超碰成人av | 欧美成人精品欧美一级 | 欧美图片一区二区三区 | 91福利在线导航 | 99久久精品无码一区二区毛片 | 一级做a视频 | 神马午夜在线观看 | 国产精品黄色片 | av在线资源网站 | 艳妇臀荡乳欲伦交换在线播放 | 又黄又爽又色视频 | 超碰伦理| 国产精品网址 | 国产伦精品 | 波多野结衣理论片 | 一区二区精 | 日女人网站| 五月婷婷网站 | 亚洲欧美日本在线观看 | 97超碰国产精品无码蜜芽 | 好吊色青青草 | 日本一本在线观看 | 中文字字幕在线中文乱码电影 | 97精品熟女少妇一区二区三区 | 中文字幕区| 欧美三级久久 | 国产欧美日韩中文字幕 | 欧洲-级毛片内射 | 国产精品毛片va一区二区三区 | 欧美日本一区二区 | 成年人黄色大全 | 麻豆精品久久久 | 国产一区二区三区在线 | av手机| 欧美高清hd18日本 | 最新毛片基地 | 特黄特色特刺激免费播放 | 美女网站污 | 亚洲一区 在线播放 | 五月婷婷色丁香 | 免费看黄在线观看 | 国产精品久久综合青草亚洲AV | 大地资源中文第三页 | 少妇日韩 | 国产精品无码成人网站视频 | 中文字幕av在线播放 | 一级片在线免费观看 | 国产男女猛烈无遮挡a片漫画 | 国产成人精品一区二区三区福利 | 一级性生活大片 | 午夜性生活视频 | 两性av | 奇米7777| 欧美肉大捧一进一出免费视频 | 亚洲AV成人无码网站天堂久久 | 你懂得在线视频 | 喷水了…太爽了高h | 国产在线无 | 特黄一区 | 亚洲特黄 | 色婷婷av一区二区三区麻豆综合 | 毛片毛片毛片毛片 | 亚洲精品无码永久在线观看 | 白嫩白嫩国产精品 | 欧美又大粗又爽又黄大片视频 | 久久永久免费 | 成人自拍av | 日韩一区二区三区不卡 | 丰满大乳少妇在线观看网站 | 水果视频污| 天天cao在线 | 日本一二区视频 | 五月婷婷丁香六月 | 少妇中出视频 | 五月婷婷六月综合 | 国产区在线看 | 亚洲三页| 一二三区免费视频 | 韩国精品一区 | 俺去操 | 免费精品无码AV片在线观看黄 | 成人特级毛片69免费观看 |