Ubuntu中opencv3的编译安装

1、安装依赖包

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjpeg62-dev libtiff4-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

2、下载
可以选择两种方法下载
(1)直接下载对应的release版本
opencv下载地址:https://github.com/opencv/opencv/releases
opencv_contrib下载地址:https://github.com/opencv/opencv_contrib/releases
(2)git clone

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.2.0
git pull

git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib   
git checkout 3.2.0
git pull

3、设置cmake编译参数

cd opencv
mkdir build
cd build

# 不带opencv_contrib的编译
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

# 或

# 不带opencv_contrib的编译
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
    -D BUILD_EXAMPLES=OFF \
    -D WITH_LAPACK=OFF \
    -D WITH_IPP=OFF ..

CMAKE_INSTALL_PREFIX:安装的python目录前缀,其实就是指定了python模块的安装路径:CMAKE_INSTALL_PREFIX/lib/python2.7/dist-packages。获取该路径的方式可以用python -c "import sys; print sys.prefix"
PYTHON_EXCUTABLE:指定python路径,在电脑上有多个版本的python时,可以通过该方式指定哪个python版本使用
OPENCV_EXTRA_MODULES_PATH: 指定opencv所需模块的路径,就是之前我们所说的contrib
注:
(1)ippicv的离线下载
安装Opencv的时候,停在了下载ippicv的地方,一直都下载不下来
ippicv是一个并行计算库,其实可以不用的。
如果不想用这个并行计算库,在做Cmake的时候用参数关闭即可,但我还是建议使用这个库。
首先,手动下载ippicv
然后,将刚才下载的ippicv文件直接拷贝进入opencv源码的下面这个目录:
opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
(2)cuda与opencv兼容性问题
如果机器配置有GPU显卡,在需要编译支持CUDA的OpenCV库时,如果编译计算机已经安装了CUDA驱动程序,在利用CMake编译OpenCV时字段“WITH_CUDA”默认会被自动勾选上的。如果编译计算机未安装CUDA驱动程序和OpenCV运行时,CMake的字段“WITH_CUDA”默认就不会被自动勾选上。 因此在当cuda与opencv版本不兼容的话,会报cmake错误(目前发现主要是由于cuda9.0以上不支持opencv2.0架构,安装时候会报错)。当存在版本兼容性问题时候,可以简单粗暴的添加-D WITH_CUDA=OFF 命令来不使用CUDA加速即可,也可参照网上大神的解决方案https://blog.csdn.net/mundane_world/article/details/79786272,也可参考如下版本匹配参考来安装:

GPU的cuda与opencv版本匹配可以参考如下(本兼容版本只是个人验证版本,仅供参考):

CUDAopencv
cuda8.0opencv3.2.0+opencv_contrib3.2.0
opencv3.3.0+opencv_contrib3.3.0
cuda9.0opencv3.4.3+opencv_contrib3.4.3

3、编译安装
可以通过nproc命令查看cpu位几个内核,如下面的8代表是八核的cpu,启动8个线程。

make -j8 
sudo make install
sudo ldconfig

4、测试
通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv  

5、conda中的其他python版本(不能跨大版本共享使用)使用已编译的opencv
上述编译安装时把opencv安装在以下目录中

/usr/local/lib/python2.7/site-packages

此时Ubuntu环境原生的python已经可以使用cv2了,但如果使用了conda版本管理器,还需要使用如下设置才可生效

cd ~/miniconda2/envs/py2/lib/python2.7/site-packages    #conda默认python路径:~/miniconda2/lib/python2.7/site-packages
ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

此时在conda的python中即可使用opencv和opencv_contrib了,在python中执行如下命令,如果无报错则可正常使用

import cv2
cv2.xfeatures2d.SIFT_create(nfeatures=500) #简单测试opencv_contrib是否安装成功!

=============================================================================

另一种快速安装方式

如果不想编译安装的话直接执行以下命令,同样能达到效果

#只安装opencv
pip install opencv-python

#同时安装opencv和opencv_contrib
pip install opencv-contrib-python

注:cv2依赖于numpy,如出现以下报错安装numpy即可
这里写图片描述

pip install numpy
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值