ubuntu 18.04 安裝opencv3.4.5+opencv_contrib


此文轉載自:https://blog.csdn.net/qq_49848470/article/details/110406099#commentBox

ubuntu 18.04 安裝opencv3.4.5+opencv_contrib

Ubuntu18.04安裝opencv-3.4.5及opencv-contrib
自己也已經安裝過很多遍opencv了,自己總結一下吧

安裝包下載

注意 opencv與opencv-contrib的版本應該一致
opencv 下載
opencv官網
opencv_contrib 下載 github
在這里插入圖片描述在這里插入圖片描述這里需要下載opencv的source,opencv_contrib可以下載zip或者tar.gz,但本文下載的是zip

安裝依賴包

sudo apt-get update
sudo apt-get upgrade
//依賴包
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  
sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev  libgphoto2-dev libopenblas-base libopenblas-dev doxygen  openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config

在上述依賴庫安裝完成之后才能開始后續操作。在對上述代碼復制時最好一次一句地復制,否則無法安裝,終端中會直接跳過,在選擇Y/n時無法選擇Yes。

可能遇到的問題

其中可能遇見無法安裝libjasper-dev的問題,類似下面的頁面

XXX@XXX:~/Files/opencv-3.1.0$ sudo apt-get install libjasper-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libjasper-dev

解決方案

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

其中libjasper1是libjasper-dev的依賴包,然后再次安裝

sudo apt install libjasper1 libjasper-dev

安裝opencv和opencv_contrib

先解壓下載的opencv和opencv_contrib包,建議直接將下載下來的包直接放至home地址下,這樣,zip格式的解壓代碼如下:

sudo unzip opencv-3.4.5.zip
sudo unzip opencv_contrib-3.4.5.zip

tar.gz格式解壓代碼:

sudo tar zxvf opencv_contrib-3.4.5.tar.gz

然后將解壓后的contrib文件移動至opencv-3.4.5文件下

sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5

並在opencv-3.4.5文件夾中新建build文件夾用於后續編譯和生成。

cd opencv-3.4.5                               #進入opencv文件夾
sudo mkdir build                              #建立build文件夾方便后續操作

進入bulid文件夾並進行第一次cmake

cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -D OPENCV_ENABLE_NONFREE=True ..

注意**-DOPENCV_ENABLE_NONFREE=True**別把-D與OPENCV_ENABLE_NONFREE=True分開,這句就是使用nonfree模塊,包括sift等有專利權的模塊。
注意后面的兩點不可省略,代表其他參數默認。
注意 OPENCV_EXTRA_MODULES_PATH 代表你放置opencv_contrib的modules文件夾的真實地址,如果直接將opencv放在home下那地址與上述參數相同,只需要注意版本號即可。

可能遇到的問題

ippicv和face_landmark_model.dat下載失敗的解決方案

1 先下載文件

,文件的下載地址可以在提示文件//中找到,直接去該地址下載。或者用百度雲下載,鏈接
鏈接:
ippcv 提取碼:wjl1
鏈接:fippicv和face_landmark_model.dat提取碼:wjl1

2 修改相應的文件

打開

自己的地址/opencv-3.4.5/3rdparty/ippicv/ippicv.cmake

做以下修改。 將ippicv.cmake文件下的第47行替換為本地路徑

"改為相應地址"           #本地路徑,與你自己下載存放的地址相關
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" #原下載地址
#記得改為本地ippcv的地址

更改完ippicv之后,再更改face_landmark_model配置文件,方法大致相同
同樣打開

/本地地址/opencv-3.4.5/opencv_contrib-3.4.5/modules/face/CMakeLists.txt

然后將CMakeLists.txt文件的第19行修改為本地路徑,即將原來的網址修改為下載的文件保存的路徑。這個行數不定,與文件相關,主要是找到網址地址。

"本地地址"     #本地路徑,與你自己下載存放的地址相關
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/" #原下載地址
# 記得改為本地face_landmark_model.dat的地址

這樣, ippicv和face_landmark_model.dat下載失敗的問題就得以解決。
生成完畢后會生成如下的類似界面

--   Install path:                  /usr/local
-- 
--   cvconfig.h is in:              /home/files/opencv-3.4.5/build
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/files/opencv-3.4.5/build

然后進行make

sudo make -j8   #j后面的數字代表用幾個線程編譯,此為8線程

然后大概率會出現以下錯誤
fatal error: boostdesc_bgm.i: vgg_generated_80. vgg_generated_120.i沒有那個文件或目錄

這個問題是一堆文件的缺失,包括
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
所以只需要將這些文件下載然后放置到opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。
當然,這些文件的下載路徑可以在cmake//日志中查看,直接復制其下載地址到網頁可以看該到文件的源碼,直接拷貝源碼並生成同名文件然后放置到opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。
或者從百度網盤中下載,然后解壓並將這些文件放置到opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。
鏈接
密碼: a2c1
這些問題解決之后,還會遇見最后一個問題,就是opencv的stitiching模塊中對xfeatures2d的調用地址問題。
在這里插入圖片描述opencv安裝opencv_contrib出現無法打開包括文件: “opencv2/xfeatures2d/cuda.hpp”的解決方法:
這里比較簡單的就是直接改掉頭文件

解決辦法: 在CMakeLists.txt增加以下內容: INCLUDE_DIRECTORIES("/works/opencv-3.4.0/opencv_contrib-3.4.0/modules/xfeatures2d/include") 
CMakeLists.txt文件所在路徑為: <你的路徑>/opencv-3.4.0/modules/stitching/ CMakeLists.txt 

解決完這些錯誤,可以繼續

sudo make -j8

在這里插入圖片描述只要成功到達100即為成功

sudo make install

到達這一步opencv安裝成功

配置環境變量

打開文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

在空白文檔中添加

/usr/local/lib

接下來配置庫

sudo ldconfig

更改環境變量

sudo gedit /etc/bash.bashrc

在文件的最后添加

export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig 
export LD_LIBRARY_PATH=/usr/local/opencv/lib 

測試

使用qt ,這個比較簡單,也方便
如圖,需要注意以下pro文件的寫法。
在這里插入圖片描述運行成功打開攝像頭即為成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM