总结一下在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.youkuaiyun.com/u010987458/article/details/71702938ra”
3:http://www.jianshu.com/p/11d279f1bf2c
4: http://blog.youkuaiyun.com/lql0716/article/details/54564721