最近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
即表示配置成功