總結一下在Ubuntu上配置opencv的過程:
OpenCV目前最新的版本是3.3.0.但是配置了幾次都不成功。後來在官網看到,這個版本在Linux上支持不完全。比如imshow和Namedwindow無法運行。後來只能裝3.2版本的了。
1.首先添加支持庫:
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 處理圖像所需的包
$ sudo apt-get install libgtkglext1-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
$ sudo apt-get install libxvidcore-dev libx264-dev # 處理視頻所需的包
$ sudo apt-get install libatlas-base-dev gfortran # 優化opencv功能
$ sudo apt-get install ffmpeg
缺一不可!
2.下載opencv-3.2.0和opencv_contrib-3.2.0
opencv_contrib-3.2.0.zip
然後解壓這兩個文件。
3.配置OpenCV3
3.1 建立build目錄
cd opencv-3.2.0
$ mkdir build
$ cd build
這裏的“opencv-3.2.0”是上一步解壓後的路徑。
3.2 配置cmake屬性
配置前提:
a有NVIDIA的CUDA版本
b.顯卡是GTX 1060
c.使用的是Python 3.x環境
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
-D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
-D ENABLE_AVX=ON \
-D WITH_CUDA=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D CUDA_ARCH_BIN="6.1" \
-D CUDA_ARCH_PTX="" \
-D WITH_V4L=ON \
-D WITH_TBB=ON \
-D WITH_GTK=ON \
-D BUILD_opencv_python2=OFF \
-D WITH_GTK_2_X=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
注意:
a.這裏的《CUDA_ARCH_BIN=”6.1”》需要根據不同型號的GPU,去官網查詢的,也就是計算能力。
b.《OPENCV_EXTRA_MODULES_PATH》指的是第二步,解壓後的opencv_contrib-3.2.0中modules文件的路徑,應做適當調整。
非常重要的是:
cmake完了之後要驗證:
a. OpengGL
GTK+ 2.x: YES (ver 2.24.30)
OpenGL support: YES (#安裝路徑)
b. NVIDIA
-- Use Cuda: YES (ver 8.0)
-- NVIDIA CUDA
-- Use CUFFT: YES
-- Use CUBLAS: YES
-- USE NVCUVID: NO
-- NVIDIA GPU arch: 61
-- NVIDIA PTX archs:
-- Use fast math: YES
c.VideoIO
Video I/O:
-- DC1394 2.x: YES (ver 2.2.0)
-- FFMPEG: YES
-- avcodec: YES (ver 54.92.100)
-- avformat: YES (ver 54.63.104)
-- avutil: YES (ver 52.18.100)
-- avswscale: YES (ver 2.2.100)
-- avgentoo-style: YES
-- GStreamer:
-- base: NO
-- video: NO
-- app: NO
-- riff: NO
-- pbutils: NO
-- V4L/V4L2: NO/YES
凡是《YES》項目,一定要滿足!!!!
4.make步驟
$ make -j8
$ sudo make install
$ sudo /bin/bash -c 'echo "/home/software/anaconda3/lib/" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig
注意:
a.<-j8>指的是你電腦幾核,可以加快make的速度,比如我的電腦是8核,那麼就是-j8.
b.《/home/software/anaconda3/lib/》指的是你安裝好opencv之後的路徑。
至此,就配置完成了。 可以自己運行代碼驗證一下。
主要是從一下幾個地方學習來的:-
1: http://www.cnblogs.com/arkenstone/p/6490017.html
2: http://blog.csdn.net/u010987458/article/details/71702938ra”
3:http://www.jianshu.com/p/11d279f1bf2c
4: http://blog.csdn.net/lql0716/article/details/54564721