Ubuntu18.04配置Opencv3.4.9

前言

源碼編譯安裝Opencv完整步驟以及問題總結。

一.下載opencv以及opencv_contrib

可以去github中,在右側的release中找到需要的版本,opencv以及opencv_contrib版本號對應即可。
下載解壓以后,將opencv_contrib放入opencv文件夾中,并在opencv文件夾中新建build文件夾,用來編譯使用。

二.安裝依賴

$ sudo apt-get update
$ sudo apt-get upgrade

因為安裝 libjasper-dev 這個依賴包可能會出問題,所以先執(zhí)行以下命令,在執(zhí)行后續(xù)依賴包的安裝

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

之后,安裝其他依賴

$ sudo apt-get install libgtk-3-dev libgtk2.0-dev pkg-config
$ sudo apt-get -y install build-essential cmake
$ sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev 
$ sudo apt-get -y install python3-dev python3-numpy python-dev python-numpy 
$ sudo apt-get -y install libpython3.6-dev libtbb2 libtbb-dev 
$ sudo apt-get -y install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libavcodec-dev libavformat-dev 
$ sudo apt-get -y install libswscale-dev libv4l-dev liblapacke-dev libopenexr-dev libxvidcore-dev libx264-dev 
$ sudo apt-get -y install libatlas-base-dev gfortran ffmpeg

安裝 cmake GUI

$ sudo apt-get install cmake-gui

三.使用cmake GUI進行配置

$ cd build
$ cmake-gui ../opencv-3.4.9

步驟如下:

1.點擊Configure,選擇Unix Makefile,選Use default native compliers。
2.按照順序,然后 finish,此時 Configure 按鈕變?yōu)?Stop ,表示配置進行中。
3.Configure 結束后,如果 cmake 的主界面仍有紅色區(qū)域,則再次點擊 Configure 進行配置,直到紅色區(qū)域完全消失。
4.紅色區(qū)域沒了之后,進行下一步的配置
(1)在 CMAKE_BUILD_TYPE 值處選擇 Release
(2)CMAKE_INSTALL_PREFIX 選擇安裝的路徑   這里我選擇 build 目錄下自己新建的 myInstall 文件夾。
(3)在 OPENCV_EXTRA_MODULES_PATH 處,為其設置 opencv_contrib-3.4.9 的路徑,精確到 /modules 目錄
(4)勾選 OPENCV_PYTHON3_VERSION
(5)添加 python 的路徑
    PYTHON2_INCLUDE_DIR2  /usr/include/x86_64-linnx_gnu/python2.7
    PYTHON3_INCLUDE_DIR3  /usr/include/x86_64-linnx_gnu/python3.6m
(6)勾選 OPENCV_GENERATE_PKGCONFIG   這個很重要,是生成 opencv.pc 的
5.再次點擊 Configure 進行配置,如果還有紅色就繼續(xù) Configure ,直到?jīng)]有紅色才可進行下一步。
紅色區(qū)域沒了之后還要注意下輸出信息,滾一下看看有沒有錯誤信息(通常也是紅色字體,很顯眼),一般是下載問題,如果有錯誤信息,就繼續(xù) Configure ,直到?jīng)]有錯誤信息。
    最后,點擊 Generate,出現(xiàn) “Generating done” 則意味著 cmake 的工作結束了。

正常來講,上面第五步提到的下載問題是一定會出現(xiàn)的,這是因為服務器響應超時導致文件無法下載造成的,那么可以提前下載號之后,放入到制定的文件夾,并且替換即可。
1.根據(jù)輸出的紅色內(nèi)容,可以找到一個"xxxdownload.txt"文件的路徑,打開查看,就會發(fā)現(xiàn)這些文件本來應該被下載在哪兒,并且文件名稱是什么。此時將我提供的這些文件 密碼: mblb下載。根據(jù)對應的名稱給其重命名,并放入制定路徑。
2.如果不想查看*download.txt,也可以在opencv文件夾中Ctrl+h,顯示隱藏文件,會看到.cache文件夾。
(1)data文件夾中會有face_landmark_model.dat的緩存文件,將其名稱復制后,重命名給下載好的face_landmark_model.dat,之后替換原有的緩存文件。
(2)(3)ippicv和xfeatures2d文件夾也是如此操作。
此時再次點擊 Configure,就發(fā)現(xiàn)沒有紅色輸出了,最后,點擊 Generate,出現(xiàn) “Generating done” 則意味著 cmake 的工作結束了。

四.make&&make install

在build 目錄下輸入下面的命令,-j8 意思是用8個 CPU 去 make

$ sudo make -j8
#可以查看你的系統(tǒng)多少個
$ cat /proc/cpuinfo | grep "processor" | wc -l  

之后

$ sudo make install

五.進行環(huán)境配置

1.pkg-config
首先,測試顯示 OpenCV 版本號,命令行輸入以下命令

$ kg-config --modversion opencv

解釋一下 pkg-config 這個什么意思嗎,pkg-config 就是我們告訴程序編譯時從哪里找頭文件和庫相關信息。
opencv.pc放哪里?它默認會去/usr/lib/pkgconfig 里面找 opencv.pc 。當它在這里找不到 opencv.pc ,它就會到 PKG_CONFIG_PATH 所設置的環(huán)境變量去找,如果還沒找到就會報錯,比如上兩個測試的報錯。
所以:如果是 opencv4.pc 的就把下面提到的 opencv.pc 改為 opencv4.pc,當然你也可以重命名為 opencv.pc。
方法一:移動 opencv.pc 到 /usr/lib/pkgconfig
方法二:把 opencv.pc 放在你想放的路徑,然后
(1). 打開 bash.bashrc

$ sudo gedit /etc/bash.bashrc

(2). 在文件后添加(改為自己的路徑)
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/zxzn/opencv-3.4.9/build/myInstall/lib/pkgconfig
(3) 更新配置

$ sudo updatedb

2.配置庫路徑

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

添加你自己的 lib 路徑,就比如我的如下:
/home/zxzn/opencv-3.4.9/build/myInstall/lib
保存后,更新一下

$ sudo ldconfig

最后,再進行驗證

$ pkg-config --modversion opencv

我的輸出為3.4.9.
如果沒有正常輸出可以稍微等待或者重啟即可。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容