本文主要針對(duì)Ubuntu 17.04版本下,opencv進(jìn)行源碼編譯安裝。開(kāi)發(fā)環(huán)境主要針對(duì)python 對(duì) openCV庫(kù)的調(diào)用蚓曼。
- 安裝 gcc cmake 編譯環(huán)境
sudo apt-get install build-essential pkg-config cmake cmake-gui
本文提供兩種源碼編譯方式脉执,一種是cmake命令踢代,另一種是通過(guò)圖形界面的cmake-gui進(jìn)行編譯
- 該版本系統(tǒng)ubuntu已經(jīng)自帶python 2.7 和 python 3.5 先鱼,需安裝 pip 對(duì)python包進(jìn)行管理
sudo apt-get install python-pip
sudo apt-get install python3-pip
- 配置pip 清華源加速包下載更新速度(尋找飛一樣的感覺(jué))
mkdir ~/.pip
vim ~/.pip/pip.conf
# 在pip.conf 中添加以下內(nèi)容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
- 安裝python 以及 python3 下的數(shù)據(jù)分析包
pip install numpy scipy matplotlib scikit-image scikit-learn
pip3 install numpy scipy matplotlib scikit-image scikit-learn
- 安裝其他依賴
# git : 版本控制
# gfortran fortran編譯器
# yasm 匯編編譯器
# ffmpeg 系統(tǒng)自帶
sudo apt-get install checkinstall yasm gfortran git ffmpeg
sudo apt-get install libxvidcore4 libgtk-3-dev
sudo apt-get install libjpeg8-dev libjasper-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
sudo apt-get install libqt4-dev libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils
- 可選依賴
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
- 下載并且安裝OpenCV3
- 安裝git
sudo apt-get install git
- 下載OpenCV3
git clone https://github.com/opencv/opencv.git
- 下載OpenCV_Contrib
git clone https://github.com/opencv/opencv_contrib.git
OpenCV 從 3.0 開(kāi)始,就將一部分內(nèi)容(比如 SIFT 等)分離到 opencv_contrib 中奸鬓。因此,要完整安裝 OpenCV掸读,還需要安裝 opencv_contrib串远。
- 命令編譯
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
# 查看cpu 核心數(shù)
nproc
# 如果你有8個(gè)核心
# 切換至 build 目錄中,執(zhí)行下面命令儿惫,編譯源碼并鏈接生成相應(yīng)的動(dòng)態(tài)庫(kù)以及可執(zhí)行文件
make -j8
# 執(zhí)行完成后澡罚,再執(zhí)行以下命令,將生成的可執(zhí)行文件以及動(dòng)態(tài)庫(kù)安裝到指定的安裝目錄中肾请。
sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
- 用圖形化工具配置生成 makefile
切換至 opencv 目錄留搔,然后新建一個(gè)目錄,用于存放 cmake 生成的配置文件铛铁。
mkdir build
cd build
-
在你的圖形界面的軟件中找到 cmake-gui 打開(kāi)
然后在 Where is the source code 中添加 opencv 的目錄路徑隔显,在 where to build the binaries 中添加剛才新建的 build 目錄
然后點(diǎn)擊下面的Configure,選擇 Unix Makefiles,然后選擇 default ...。點(diǎn)擊 OK饵逐,從而處理 opencv目錄下的 CMakeLists.txt 括眠。并且在 Build 目錄下生成 CMakeCache.txt 及 Makefile 等相關(guān)文件。
-
Configure配置結(jié)束后倍权,將會(huì)出現(xiàn)類似以下配置界面
以下是需要修改的部分
CMAKE_BUILD_TYPE 修改為 RELEASE
OPENCV_EXTRA_MODULES_PATH 設(shè)為 opencv_contrib 中的 modules 目錄的路徑(比如掷豺,/home/arvin/opencv_contrib/modules)
在 BUILD_EXAMPLES 的復(fù)選框里 打勾
在 INSTALL_C_EXAMPLES 的復(fù)選框里 打勾
在 INSTALL_PYTHON_EXAMPLES 的復(fù)選框里 打勾
在 WITH_FFMPEG 的復(fù)選框里 打勾
在 WITH_GTK 的復(fù)選框里 打勾
在 WITH_V4L 的復(fù)選框里 打勾
在 WITH_TIFF 的復(fù)選框里 打勾
在 WITH_PNG 的復(fù)選框里 打勾
在 WITH_JPEG 的復(fù)選框里 打勾
在 WITH_JASPER 的復(fù)選框里 打勾
取消 WITH_CUDA 的復(fù)選框里的勾
取消 WITH_CUFFT 的復(fù)選框里的勾
然后點(diǎn)擊Configure,應(yīng)用剛才的修改并且將修改內(nèi)容更新至 build 目錄下的 CMakeCache.txt 中薄声。然后點(diǎn)擊 Generate当船,更新 Makefile。
-
安裝OpenCV3 及 OpenCV3 的額外包
cd opencv/build/
make -j8
sudo make install
sudo ldconfig
- 測(cè)試環(huán)境是否配置成功
# 在命令行打開(kāi)你的python 解釋器默辨,輸入以下命令
import cv2
print cv2.__version__
# 若看到類似以下輸出德频,則表示配置成功
'3.3.0-dev'