前言
本次安裝是在我的雙系統(tǒng)下安裝的,不同ubuntu版本或者不同硬件平臺(tái)情況也許會(huì)有所不同,僅供參考。
一.opencv 3安裝
第一步:
我采用的是github官方代碼倉(cāng)庫(kù)下載安裝的方式,下載的是3.2.0版本(其余版本安裝過(guò)程類似)
opencv官方鏈接
第二步:安裝依賴項(xiàng)
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
值得一提的是,在此處我遇到過(guò)libjasper-dev無(wú)法安裝的問題,一般采取的措施都是添加repository的鏈接后更新軟件源,但嘗試后還是無(wú)法安裝該依賴,選擇跳過(guò)后發(fā)現(xiàn)不影響后續(xù)安裝。具體參見其他大佬的博客。
第三步:正式編譯安裝
先在下載opencv的文件夾下解壓,在/usr/local路徑下創(chuàng)建文件夾opencv320之后在終端執(zhí)行以下指令:
cd ~/Downloads/Applications/opencv-3.2.0
mkdir build # 創(chuàng)建build文件夾
cd build # 進(jìn)入build文件夾
#注意,一定要加上最后的兩個(gè)點(diǎn),***處根據(jù)實(shí)際需求修改
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D ENABLE_PRECOMPILED_HEADERS=OFF ..
#我的理解是這cmake把opencv的一些庫(kù)和可執(zhí)行文件安裝到了系統(tǒng)目錄下,方便日后程序調(diào)用
make -j20 # j后面的數(shù)字情況而定
# 安裝到前面指定的路徑下,無(wú)需加DESTDIR=/your/install/path
sudo make install
注意!
我的cmake那一行寫法跟大多數(shù)教程都不同哈,原因是采用其他人的寫法報(bào)錯(cuò),這是我踩坑之后的修改版,具體bug以及解決的鏈接我放下邊了。
報(bào)錯(cuò)1:
stdlib.h:沒有這樣的文件或目錄
解決方法:編譯OpenCV時(shí)出錯(cuò),致命錯(cuò)誤:stdlib.h:沒有這樣的文件或目錄
報(bào)錯(cuò)2:
error PCL requires C++14 or above
解決方法:error: #error PCL requires C++14 or above
報(bào)錯(cuò)3:
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
make: *** [Makefile:138: all] Error 2
解決方法:樹莓派3b+安裝opencv報(bào)錯(cuò)/opencv_python3.dir/__/src2/cv2.cpp.o Error 1
二.cv_bridge安裝
因?yàn)槲译p系統(tǒng)自帶的是opencv4,cmake 優(yōu)先會(huì)找系統(tǒng)下的cv_bridge,我在此處采取的辦法和大多數(shù)人一樣,都是先卸載了系統(tǒng)自帶的cv_bridge:
第一步:卸載自帶cv_bridge
#根據(jù)版本選擇哈,我的對(duì)應(yīng)的ros版本是noetic
sudo apt-get remove ros-noetic-cv-bridge
第二步:下載對(duì)應(yīng)ros版本的cv_bridge
cv_bridge官方下載鏈接
左上角Branches選擇對(duì)應(yīng)版本下載即可
第三步:解壓安裝
先打開cv_bridge對(duì)應(yīng)的CMakeLists,路徑:/home/myPC/Downloads/Applications/vision_opencv-noetic/cv_bridge,將圖中對(duì)應(yīng)的代碼注釋,并set之前opencv的安裝路徑此時(shí)在剛剛那一級(jí)路徑下(/home/myPC/Downloads/Applications/vision_opencv-noetic/cv_bridge)執(zhí)行以下操作:
mkdir build # 創(chuàng)建build文件夾
mkdir -p install/install320 #創(chuàng)建install文件夾便于之后的安裝
cd build # 進(jìn)入build文件夾
#注意,一定要加上最后的兩個(gè)點(diǎn),***處根據(jù)實(shí)際需求修改
cmake -D CMAKE_INSTALL_PREFIX=/home/***/Downloads/Applications/vision_opencv-noetic/cv_bridge/install/install320 ..
make -j20 # j后面的數(shù)字情況而定
# 安裝到前面指定的路徑下,無(wú)需加DESTDIR=/your/install/path
sudo make install
此時(shí)cv_bridge和opencv安裝就大功告成了,但還有一步十分關(guān)鍵,那就是如何將這兩者的路徑添加到工程CMakelists.txt中,我以港科大https://github.com/HKUST-Aerial-Robotics/FIESTA FIESTA建圖舉例子,在我的設(shè)備以及Jetson Xavier上該方法已經(jīng)成功運(yùn)行。
a.首先在頂部添加cv_bridge的路徑
set(cv_bridge_DIR /home/xyx/Downloads/Applications/vision_opencv-noetic/cv_bridge/install/install320/share/cv_bridge/cmake) #在find_package前面
find_package(cv_bridge)
b.添加opencv路徑:
set(OpenCV_DIR "/usr/local/opencv320")
set(OpenCV_LIBS "/usr/local/opencv320/lib")
c.將opencv的include文件夾包含進(jìn)來(lái)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv320/include)
find_package(OpenCV 3.2)
d.注釋原有代碼中find_package的cv_bridge
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
nav_msgs
visualization_msgs
tf
#cv_bridge
)
e.添加cv_bridge的include文件夾路徑
include_directories(
include
SYSTEM
${catkin_INCLUDE_DIRS}
${Eigen3_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
#${OpenCV_INCLUDE_DIRS} 可以注釋,也可不注釋
${cv_bridge_INCLUDE_DIRS}
)
f.鏈接cv_bridge的庫(kù)
target_link_libraries(test_fiesta
${catkin_LIBRARIES}
${PCL_LIBRARIES}
${OpenCV_LIBS}
${cv_bridge_LIBRARIES}
)
此處一定要小心 cv_bridge 對(duì)應(yīng)的庫(kù)寫法?。?!
我之前把 LIBRARIES寫成了LIBS,找了好幾天才發(fā)現(xiàn)問題,在此特地記錄一下,希望大家以后不要犯同樣的錯(cuò)誤
最后的CMakeLists.txt就是如下的樣子:
之后就可以正常catkin_make了,source路徑即可完美運(yùn)行。
新人小徐的第一篇博客,如有侵權(quán),必定刪改。同時(shí)感謝一路陪伴指導(dǎo)的龍哥。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-763299.html
Peace & Love~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-763299.html
到了這里,關(guān)于ubuntu20.04安裝opencv 3.2.0以及cv_bridge踩坑記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!