1. 程式人生 > >OpenCV從原始碼安裝到Ubuntu16.04

OpenCV從原始碼安裝到Ubuntu16.04

step 1,開啟終端,更新一下各種包,兩個命令的區別可自行bing

$ sudo apt-get update

$ sudo apt-get upgrade

​step2,接下來安裝一些開發工具

$ sudo apt-get install build-essential cmake git pkt-config​

git 用來從github下載opencv原始檔,cmake編譯

step3,安裝一些用於解析圖片檔案的包

$ sudo apt-get install libjpeg8-dev libtiff4-dev(或用libtiff5-dev替代) libjasper-dev libpng12-dev

step4,​安裝GTK開發庫,用於把圖片在螢幕上顯示

$ sudo apt-get install libgtk2.0-dev

step5,安裝處理視訊流和單個畫面幀的庫

$ sudo apt-get install libavcode-dev libavformat-dev libswscale-dev libv4l-dev

step6,優化OpenCV的庫

$ sudo apt-get install libatlas-base-dev gfortran

step7,安裝python包管理工具pip

$ sudo python get-pip.py

step8,安裝virtualenv和virtualenvwrapper,用於建立OpenCV的單獨環境

$ sudo pip install virtualenv virtualenvwrapper

$ sudo rm -rf ~/.cache/pip

現在更新一下環境變數

$ export WORKON_HOME=$HOME/.virtualenvs

$ source /usr/local/bin/virtualenvwrapper.sh

下面的命令會讓更改後的環境變數立即生效

$ source ~/.bashrc

接下來建立OpenCV的虛擬環境cv,

$ mkvirtualenv cv

step 9,安裝python2.7開發工具

$ sudo apt-get install python2.7-dev

$ sudo pip install numpy

step 10,​從github上Download Opencv3.0 和 opencv_contrib3.0,用不用git命令下載都可以

$ cd ~

step11,接下來準備build,注意opencv的版本是3.0.0還是3.1.0,執行下面命令

$ cd ~/opencv

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=TELEASE \

           -D  CMAKE_INSTALL_PREFIX=/usr/local    \

           -D  INSTALL_C_EXAMPLE=ON   \

           -D  INSTALL_PYTHON_EXAMPLE=ON   \

           -D  OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules   \

           -D  BUILD_EXAMPLES=ON   ..        後面這連個點注意

如果編譯的是opencv3.1.0,注意,​​ -D INSTALL_C_EXAMPLE= OFF ,不是ON

下來是compile:

$ make -j4 用多核心加速

​step12,編譯完成後,開始安裝

$ sudo make install

$ sudo ldconfig

step13,此時opencv的位置是在/usr/local/lib/python2.7/site-packages,進入下面這個路徑下,​把cv2.so同步連結到opencv的虛擬環境中

$ cd ~/.virtualenvs/cv/lib/python​2.7/site-packages/

$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

step14,大功告成,Opencv 3.0 + opencv_contrib 3.0​ + python2.7,就在ubuntu中安裝好了。

這裡寫圖片描述
如果使用了Anaconda的話,只用把cv2.so 檔案複製到Anaconda2/lib/python2.7/site-packages/目錄下即可。