1. 程式人生 > >ubuntu16.04安裝opencv3.4.1教程

ubuntu16.04安裝opencv3.4.1教程

最近opencv3.4.1釋出了,想換個新的試試鮮,於是把配置的過程通過博文的方式記錄下來,方便查閱。
本教程原為3.3.0,但經過博主親測,3.4.0、3.4.1皆適用

1.去官網下載opencv,在本教程中選用的時opencv3.4.1,其他版本的配置方法異曲同工。
下載連結http://opencv.org/releases.html,選擇sources版本

2.解壓下載下來的zip包

unzip opencv-3.4.1.zip

3.進入到解壓後的檔案包中

4.安裝依賴庫和cmake ,如果提醒需要apt-get update,那就先sudo su進入root許可權,再sudo apt-get update,然後在執行下面命令

sudo apt-get install cmake  
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  

5.安裝完cmake之後執行命令 ,建立編譯資料夾,不建立的會提示(如下圖)
In-source builds are not allowed.

mkdir my_build_dir
cd my_build_dir

這裡寫圖片描述

6.cmake一下

cmake -D
CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

注意:如果已經在新的資料夾中編譯,但是還會出現之前的報錯,把cmakecache.txt刪了再編譯就可

期間可能會下載一個東西,等待一會兒就OK
這裡寫圖片描述

7.執行命令,漫長的編譯過程

sudo make

這裡寫圖片描述

8.執行命令

sudo make install

這裡寫圖片描述

9.sudo make install 執行完畢後OpenCV編譯過程就結束了,接下來就需要配置一些OpenCV的編譯環境首先將OpenCV的庫新增到路徑,從而可以讓系統找到

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

執行此命令後開啟的可能是一個空白的檔案,不用管,只需要在檔案末尾新增

/usr/local/lib  

這裡寫圖片描述

10.執行如下命令使得剛才的配置路徑生效

sudo ldconfig  

這個時候可能會提示錯誤如下圖所示(上部分)
這裡寫圖片描述
sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符號連線
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符號連線
出現這個錯誤可能是由於系統BUG所致

只需要分別輸入上面圖下部分的四行命令就可解決
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

11.配置bash

sudo gedit /etc/bash.bashrc  

在最末尾新增

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

儲存,執行如下命令使得配置生效

source /etc/bash.bashrc  

更新

sudo updatedb  

12.至此所有的配置都已經完成
下面用一個小程式測試一下

找到
cd到opencv-3.4.1/samples/cpp/example_cmake目錄下
我們可以看到這個目錄裡官方已經給出了一個cmake的example我們可以拿來測試下
按順序執行

cmake .
make
./opencv_example

即可看到打開了攝像頭,在左上角有一個hello opencv
即表示配置成功