這次是要將Opencv架設在Ubuntu 16.04的環境裡,讓我可以在ubuntu的環境下也可以快速的做影像處理的動作,這個架設,跟在windows環境下架設大同小異,一樣到官網抓下你所要編譯的opencv版本,用cmake的方式將library給建立起來,這次我使用的版本是3.3.0版,所建立的library是static版本,所以在使用cmake時的設定要稍微做個改變,接下來就是紀錄如何建立有opencv的開發環境了。
Step1: 首先我先參考OpenCV官網所教學的方法,建立在編譯opencv所需要的package。
參考網址-->https://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html#
依照官網指示,我們需要以下幾種package
- GCC 4.4.x or later
- CMake 2.6 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
而GTK的開發包已在其他文章有獨立介紹,可參考https://even1018.pixnet.net/blog/post/350617019
Step2: 再來安裝其他尚未有的開發包
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python2.7-dev python3.5-dev
以下是官網建議的安裝包,一個個輸入指令後即可將沒安裝到的都安裝好,雖然有optional選項,基本上我全安裝了。
$sudo apt-get install build-essential <==[compiler]
$sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev <==[required]
$sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev <==[optional]
我的習慣是建立一個開發環境目錄,將source code解壓後的所有檔案放置在此,以後要開發都在這裡處理即可。
我是在家目錄下建立opencv所屬的資料夾
$ sudo mkdir /home/code/opencv-3.3.0
下載source code到/home/code/opencv-3.3.0,解壓縮後會產生opencv-3.3.0的資料夾。
$ cd /home/code/opencv-3.3.0
$ sudo wget https://github.com/opencv/opencv/archive/3.3.0.zip
$ unzip sudo unzip 3.3.0.zip
Step4: 使用cmake建立opencv開發專案
使用下指令的方式既複雜又容易出錯,所以我使用GUI的方式來使用cmake
首先,先安裝cmake gui
$ sudo apt-get install cmake-qt-gui
呼叫
$ sudo cmake-gui
即會出現cmake的GUI畫面
where is the source code: /home/evan/code/opencv3.3.0/opencv-3.3.0 <==指定到我們解壓的目錄
where to build the binaries: /home/evan/code/opencv3.3.0/opencv-3.3.0/build <==將專案自動建立在build下
Step5: 設定libray為static library,再進行配置及產生專案
在configure前,請在畫面配置處將BUILD_SGARED_LIBS選項拿掉。
接著進行configure,這動作會花點時間,請耐心等待。
在執行generate,即可在build下產生專案
Step6: 進行專案的編譯及安裝opencv
進入build資料夾,編譯及安裝開始
$ make #編譯
$ sudo make install #安裝opencv到系統
$ sudo source /etc/bash.bashrc #查詢版號
Step7: 將opencv libaray所在路徑導入ld配置
$ sudo vim /etc/ld.so.conf.d/opencv.conf
打開新檔案,把/usr/local/lib這行加上去。
或是使用cmd的方式加入
$ sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
$ sudo ldcinfig #更新配置
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
和 export PKG_CONFIG_PATH #將pkgconfig加入環境變量
$ sudo vim /etc/bash.bashrc
$ sudo -s source /etc/bash.bashrc #更新環境變數
Step8:"新增opencv測試程式,看我們的開發環境是否成功
這裡我建立一個叫mytestcode的資料夾,寫一個簡單顯示出lena.jpg的測試程式,可參考opencv官網的步驟
$ sudo mkdir mytestcode
以下是 sample code,擷取於opencv官網
////////////////////////////////////////////////
建立make file。CMakeLists.txt file. It should look like this:
產生執行檔
This part is easy, just proceed as with any other project using CMake:
結果:
執行成功,表示你的ubuntu環境已成功安裝opencv的編譯環境了。