1.編譯之前先檢查下cuda是否安裝成功
nvcc -V

顯示版本號,則安裝成功,沒有安裝的先自行安裝下cuda,可以參考下我之前寫的鏈接
2.編譯opencv前檢查下是否編譯ffmpeg
/usr/local/ffmpeg/bin/ffmpeg -version

顯示版本號,則安裝成功,沒有安裝的先自行安裝下ffmpeg,可以參考下我之前寫的鏈接
3.依賴環境 安裝cmake
sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config
4.下載opencv4.4.0 以及opencv_contrib-4.4.0
官網下載:下載地址:https://opencv.org/releases/
點擊Sources進行下載自己需要的版本,我選擇的是4.4.0的

百度網盤下載鏈接:https://pan.baidu.com/s/1utdRjW8rVLVHJ_ZuEvfQjg
提取碼:1dcs
5.編譯opencv前先下載好一些難以下載的依賴項
boostdesc_bgm.i,vgg_generated_48.i等11個文件,ippicv等
已下載好,請自行提取
鏈接:https://pan.baidu.com/s/1ZEMGaJslbxLDwAGhJaodFQ
提取碼:yyd7
復制這段內容后打開百度網盤手機App,操作更方便哦
鏈接:https://pan.baidu.com/s/158p09vhdKh7Aj_MSMNyJPg
提取碼:ioet
復制這段內容后打開百度網盤手機App,操作更方便哦
5.1 那boostdesc_bgm.i....等11個文件下載好之后放置在opencv-contrib4.4\modules\xfeatures2d\src下

5.2 ippicv下載后放置在/opencv//opencv/3rdparty/ippicv/ippicv.cmake文件中
將ippicv.cmake中第42行url地址為file:./ippicv_2020_lnx_intel64_20191018_general.tgz,()

6.開始准備編譯
6.1把opencv-contrilb放到opencv4.4.0文件夾內

新建build文件夾並進入build文件夾內
mkdir build && cd build
編譯指令
cmake -DCMAKE_BUILD_TYPE=RELEASE
-DCMAKE_INSTALL_PREFIX=/usr/local
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules ..
-DWITH_CUDA=1
-DWITH_FFMPEG=ON
-DWITH_GSTREAMER=ON
-DENABLE_FAST_MATH=1
-DCUDA_FAST_MATH=1
-DWITH_CUBLAS=1
-DWITH_GTK=ON
-DOPENCV_GENERATE_PKGCONFIG=1
-DCUDA_GENERATION=Pascal ..
編譯指令大家可以仔細看下,

出現這個字樣的時候,就是編譯成功了 ,如果ffmpeg顯示為no的話 一定要檢查下你的ffmpeg有沒有安裝成功
接下來開始生成
sudo make -j6
sudo make install
6.2生成的時間比較長,建議喝杯岩漿耐心等待一會

6.3安裝生成完之后添加環境變量
sudo vim /etc/ld.so.conf
在文件最后一行加上/usr/loacal/lib
其中/user/loacal是opencv安裝路徑也就是makefile中指定的安裝路徑

sudo ldconfig
保存刷新下
在文件中加上一行 /usr/loacal/lib
其中/user/loacal是opencv安裝路徑也就是makefile中指定的安裝路徑
修改bash.bashrc文件
sudo vim /etc/bash.bashrc
在文件末尾加上:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然后刷新保存下:
source /etc/bash.bashrc
檢查下是否安裝成功:
pkg-config opencv4 --modversion

至此就成功了,opencv4.4.0 + contrilb編譯成功了,如果編譯的是opencv3.0系列的,最后檢查的時候可以不帶opencv4
pkg-config opencv --modversion 這樣就好了
參考博客鏈接:https://blog.csdn.net/public669/article/details/99044895
https://blog.csdn.net/u013230291/article/details/104233668


