高翔博士SLAM十四講ch5--opencv部分
專案場景:
高翔博士十四講opencv部分問題總結
問題1描述:
首先是下載opencv的版本,先開始我的電腦上是2.4.9.1的版本,搜尋了很多文章如何去解除安裝opencv,都說需要重新進入build資料夾然後再uninstall
解決方案:
去網上下載了opencv2.4.9,進入build,開始編譯,但是在編譯那步出現了問題,根本沒法install,所以網上所說的uninstall也沒用。。。
於是我直接按網上解除安裝python-opencv的方法解除安裝了opencv,就不管build資料夾這部分的uninstall了,直接按這個步驟走就可,然後檢視opencv版本就沒有版本號了
相關連結
問題2描述:
接下來正常安裝3.4的版本opencv即可,沒有問題,檢測安裝成功!!
但是執行高博士的程式碼還是不行,首先是報錯
error: #error This file requires compiler and library support for the ISO C++ 2011 standard.
解決方案:
有很多方法,但是執行了都沒用,經過嘗試,發現有個可以成功
連結在這,感謝大佬!
問題3描述:
把cmakelists改了又出現問題
CMakeFiles/imageBasics.dir/imageBasics.cpp.o:在函式‘cv::String::String(char const*)’中:
imageBasics.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x3f):對‘cv::String::allocate(unsigned long)’未定義的引用
CMakeFiles/imageBasics.dir/imageBasics.cpp.o:在函式‘cv::Mat::~Mat()’中:
imageBasics.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x15):對‘cv::Mat::deallocate()’未定義的引用
imageBasics.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x71):對‘cv::fastFree(void*)’未定義的引用
CMakeFiles/imageBasics.dir/imageBasics.cpp.o:在函式‘main’中:
imageBasics.cpp:(.text.startup+0xbc):對‘cv::imread(cv::String const&, int)’未定義的引用
imageBasics.cpp:(.text.startup+0x153):對‘cv::fastFree(void*)’未定義的引用
imageBasics.cpp:(.text.startup+0x1da):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x29f):對‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x2a7):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x2ae):對‘cv::waitKey(int)’未定義的引用
imageBasics.cpp:(.text.startup+0x3fc):對‘cv::noArray()’未定義的引用
imageBasics.cpp:(.text.startup+0x451):對‘cv::Mat::Mat(cv::Mat const&, cv::Rect_<int> const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x466):對‘cv::Mat::setTo(cv::_InputArray const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x4ae):對‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x4b8):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x4bf):對‘cv::waitKey(int)’未定義的引用
imageBasics.cpp:(.text.startup+0x56d):對‘cv::Mat::copyTo(cv::_OutputArray const&) const’未定義的引用
imageBasics.cpp:(.text.startup+0x572):對‘cv::noArray()’未定義的引用
imageBasics.cpp:(.text.startup+0x5c2):對‘cv::Mat::Mat(cv::Mat const&, cv::Rect_<int> const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x5d7):對‘cv::Mat::setTo(cv::_InputArray const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x61b):對‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x623):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x65e):對‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x668):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x66f):對‘cv::waitKey(int)’未定義的引用
imageBasics.cpp:(.text.startup+0x674):對‘cv::destroyAllWindows()’未定義的引用
imageBasics.cpp:(.text.startup+0x6ee):對‘cv::Mat::copySize(cv::Mat const&)’未定義的引用
imageBasics.cpp:(.text.startup+0x6fb):對‘cv::Mat::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x754):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x787):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x796):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x7d8):對‘cv::String::deallocate()’未定義的引用
imageBasics.cpp:(.text.startup+0x804):對‘cv::String::deallocate()’未定義的引用
collect2: error: ld returned 1 exit status
CMakeFiles/imageBasics.dir/build.make:102: recipe for target 'imageBasics' failed
make[2]: *** [imageBasics] Error 1
CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/imageBasics.dir/all' failed
make[1]: *** [CMakeFiles/imageBasics.dir/all] Error 2
Makefile:102: recipe for target 'all' failed
make: *** [all] Error 2
解決方案:
可以看出所有cv都報錯,這可怎麼辦。。。找到了官方的安裝包裡面的sample例項,進行程式碼對比,發現他多了幾句話
修改cmakelists為:
cmake_minimum_required(VERSION 2.8)
project(imageBasics)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
if(CMAKE_VERSION VERSION_LESS "2.8.11")
# Add OpenCV headers location to your include paths
include_directories(${OpenCV_INCLUDE_DIRS})
endif()
#SET(CMAKE_CXX_FLAGS "-std=c++0x")
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")
add_executable(imageBasics imageBasics.cpp)
# 連結OpenCV庫
target_link_libraries(imageBasics ${OpenCV_LIBS})
#add_executable(undistortImage undistortImage.cpp)
# 連結OpenCV庫
#target_link_libraries(undistortImage ${OpenCV_LIBS})
多了很多句話,但是經過我的嘗試,我發現最重要的就是
find_package(OpenCV REQUIRED)
只要有這句話就可以成功執行啦!!!!!
網上還說需要增加一個makefile並不是必要的!!!!
執行!:
編譯成功後就可以執行啦!
要自己選擇圖片,需要到圖片所在的上一層目錄,然後輸入
build/imageBasics ubuntu.png
成功輸出!!!折磨了我好幾天的opencv和程式碼執行終於成功啦,牢記兩條重要的指令!!!
相關文章
- 視覺 SLAM 十四講-基礎數學篇視覺SLAM
- 視覺slam十四講CH5 ---相機與影像視覺SLAMH5
- 視覺slam十四講CH4 ---李群與李代數求導視覺SLAM李群李代數求導
- 視覺SLAM十四講第九講 執行程式中碰到的shared libraries相關的坑。視覺SLAM行程
- 視覺SLAM十四講 第七講 視覺里程計1 3D-3D位姿求解 程式碼解析視覺SLAM3D
- django框架(部分講解)Django框架
- [高翔]關於卷遷移的整理
- Mysql系列第十四講 檢視詳解MySql
- django框架之drf(部分講解)Django框架
- 如何管理軟體企業——林銳博士免費演講通知
- 沒有“404”!新中國首批18位博士論文部分手稿首次曝光!
- 2013年9月第1次面試&演算法講座(主講人:July & 曹鵬博士)面試演算法
- SLAM演算法SLAM演算法
- 明智軟體開發——Ivar Jacobson博士上海英雄會演講的主要思想
- 國家網際網路應急中心何世平博士主題演講
- 視覺SLAM實戰(一):RGB-D SLAM V2視覺SLAM
- 視覺SLAM綜述視覺SLAM
- SLAM演算法解析SLAM演算法
- 視覺SLAM漫淡視覺SLAM
- OA-SLAM 筆記SLAM筆記
- 谷歌發現G Suite漏洞:部分密碼明文儲存長達十四年谷歌UI密碼
- 漫談 SLAM 技術(上)SLAM
- SLAM學習筆記(1)SLAM筆記
- 智慧文件處理IDP關鍵技術與實踐-高翔
- Mysql系列第二十四講 聊聊mysql如何實現分散式鎖?MySql分散式
- 追一科技楊雪峰博士WOT演講:閱讀理解應用與挑戰
- SLAM +機器學習迎來了“感知時代”SLAM機器學習
- 視覺SLAM技術綜述視覺SLAM
- SLAM(一)----學習資料整理SLAM
- AI博士如何做出有影響力的研究?斯隆獎得主弟子親身講述經驗AI
- 從SLAM到SLAM 3.0 思嵐科技是如何賦能移動機器人生態發展SLAM機器人
- Linux 振翼高翔 FAA 切換空中交通管制系統到 LinuxLinux
- Spring系列第十四講 單例bean中使用多例bean,你未必會玩?Spring單例Bean
- Go語言核心36講(Go語言進階技術十四)--學習筆記Go筆記
- ROS知識(20)----SLAM資源集合ROSSLAM
- SLAM應用的一些思考SLAM
- 解析ORB-SLAM3的原始碼ORBSLAM原始碼
- 2.2 視覺SLAM 實踐:Eigen視覺SLAM