您的位置:首页 > 运维架构

Ubuntu 多版本Opencv安装配置教程

2017-05-09 20:20 555 查看

1、安装

1.1基本环境

在Ubuntu16.04上进行测试


1.1.1 安装检查

(1)cuda检查(如果需要安装cuda

检查opencv对cuda版本的支持

- opencv3.2.0 支持cuda8.0,编辑器GCC5.4、G++5.4

- opencv2.4.13 支持cuda8.0,编辑器GCC4.9、G++4.9

(2)GCC检查

查看cuda对不同版本的gcc编辑器的支持

- cuda8.0 支持gcc5.4

- cuda4.5 只支持gcc4.6

1.1.2 环境切换

GCC多版本安装切换,请参考:

Cuda多版本安装切换,请参考:

1.1.3 安装依赖包

$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


1.2 编译

如opencv-3.2.0(opencv-2.4.13安装过程同理),其中-j4代表运行逻辑核数

$cd  ~/opencv3.2.0
$mkdir build
$cd build
$sudo mkdir /usr/local/opencv/opencv3.2.0
$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/opencv3.2.0 -D WITH_TBB=ON -D BUILD_TIFF=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_SHARED_LIBS=ON ..
$make -j4
$sudo make install -j4


1.2.1 编译卡顿

安装Opencv的时候,执行编译命令后一直卡在下载ippicv的地方。

处理:了解到ippicv是一个并行计算库,如果不想用这个并行计算库,在做Cmake的时候用参数关闭即可,但以防后患建议使用这个库。

手动下载ippicv_linux_20151201.tgz

将刚才下载的ippicv文件拷贝进入opencv3.1源码的下面这个目录:

opencv-x.x.x/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

最后再重新编译

1.3 编译问题

1.3.1Ubuntu16.04+Cuda8.0+Opencv3.2.0

其中gccc编译版本为5.4


编译过程中,出现

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning)


这只是提示build target 2.0, 2.1被弃用了,不影响编译结果,具体可参考官网

http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#warp-examples-broadcast

1.3.2Ubuntu16.04+Cuda8.0+Opencv2.1.13

(1)GCC版本不匹配

将译器GCC5.4切换GCC4.9,具体操作见教程。否则,编译过程出错

(2)cmake23

[问题现象]:

CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):

CPACK_PACKAGE_VERSION does not match version provided by version.hpp

header!

Call Stack (most recent call first):

CMakeLists.txt:1105 (include)

Configuring done

Generating done

[解决办法]:

add OPENCV_VCSVERSION = 2.4.13 (with OpenCV version 2.4.13) in

OpenCVPackaging.cmake,in OpenCVPackaging.cmake file (line 23)

set(OPENCV_VCSVERSION “2.4.13”) #<–add

set(CPACK_PACKAGE_VERSION “${OPENCV_VCSVERSION}”)

1.4 系统配置

安装完成后需要将opencv路径写入环境

1.4.1添加动态库信息

(1)方法1

$sudo sh -c 'echo "/usr/local/opencv/opencv3.2.0/lib" > /etc/ld.so.conf.d/opencv.conf'


(2)方法2

$sudo gedit /etc/ld.so.conf.d/opencv.conf


在文件末尾添加

/usr/local/opencv/opencv3.2.0/lib

使用下面的动态库管理命令ldconfig,让opencv的相关链接库被系统

$ sudo ldconfig


如果成功的话,正确的结果将会发现前面动态库的名字

$ sudo ldconfig -v >temp.so.txt && cat temp.so.txt|grep opencv


1.4.2指定头文件位置

完成了动态库的共享,还不能使用opencv来编程,还需要为程序指定openvc的头文件位置,这里使用pkg-config命令来完成。pkg-config 维护着一个关于opencv的配置文件,这个文件(opencv.pc)在目录 /usr/local/lib/pkgconfig,这个文件记录着opencv的一些动态库信息,还有头文件信息

$sudo gedit /etc/profile


在文件末尾添加

export PKG_CONFIG_PATH=/usr/local/opencv/opencv3.2.0/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/opencv3.2.0/lib


1.4.3添加python接口

这里建立软链接

sudo ln -s /usr/local/opencv/opencv3.2.0/lib/python2.7/dist-packages/cv2.so /usr/local/lib/python2.7/dist-packages
sudo ln -s /usr/local/opencv/opencv3.2.0/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so /usr/local/lib/python3.5/dist-packages


2、切换

opencv版本由3.2.0改为2.4.13的方法

2.1三步修改

(1)第1步

$sudo gedit /etc/ld.so.conf.d/opencv.conf


在文件末尾修改为

/usr/local/opencv/opencv2.4.13/lib


(2)第2步

$sudo gedit /etc/profile


修改为

export PKG_CONFIG_PATH=/usr/local/opencv/opencv2.4.13/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/opencv2.4.13/lib


保存之后

$ sudo ldconfig
$ sudo source /etc/profile


(3)第3步

a.先删除软链接(如果以及配置)

注意:opencv3.2.0同时包含python2和python3接口。但是opencv2.4.13只有python2接口

cd /usr/local/lib/python2.7/dist-packages
sudo rm cv2.so


抱歉,不敢用删除软链接的方法,我怕多敲了一个/。然后整个目录都没了。

b.重新建立软链接

sudo ln -s /usr/local/opencv/opencv2.4.13/lib/python2.7/dist-packages/cv2.so /usr/local/lib/python2.7/dist-packages


2.2 版本查看

2.2.1 opencv版本查看

$pkg-config --modversion opencv
$pkg-config --cflags opencv
$pkg-config --libs opencv


2.2.2 python接口查看

(1)opencv3.2.0之后

python2(或python3)
from cv2 import __version__
print(__version__)


输出3.2.0

(2)opencv2.4.13仅支持python2

当环境切换为opencv2.4.13时,执行

python2
from cv2 import __version__
print(__version__)


输出2.4.13

无错误提示

可以看到全都已经变成了opencv2.4.13版本了

3、测试

http://blog.csdn.net/titer1/article/details/45070065

4、运用

因为usr/local/opencv/opencv3.2.0/share/OpenCV/OpenCVConfig.cmake中设置了opencv的配置,自定义路径安装opencv时,找不到这个文件OpenCVConfig.cmake,opencv-config.cmake

需要在项目的CMakeList.txt中添加OpenCVConfig.cmake的路径

set(OpenCV_DIR /usr/local/opencv/opencv3.2.0/share/OpenCV)

(1)caffe安装配置

5、卸载

首先删除与opencv相关的内容

sudo apt-get remove libopencv.*


5.1卸载方式1

若opencv安装命令CMAKE_INSTALL_PREFIX=/usr/local/则

Going to the “build” folder directory of opencv from terminal, and execute the following:

$sudo make uninstall
$cd ..
$sudo rm -r build
$sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*


5.2卸载方式2

若opencv安装命令CMAKE_INSTALL_PREFIX=/usr/local/opencv/opencv3.2.0则

cd /usr/local/opencv
$sudo rm -r opencv3.2.0


6、最后

第一次系统性的将不同的博客进行参考汇总,并用两台电脑不断测试。难免有不少纰漏,若大家在自己电脑运行过程中发现有什么问题,可留言共同探讨。同时,若以后遇到问题,会在本文基础上,对相关内容进行更新。

参考:

【1】http://blog.csdn.net/cumt08113684/article/details/53006376

【2】http://blog.csdn.net/u012700322/article/details/56672533

【3】http://www.jianshu.com/p/3b4445253607

【4】http://blog.csdn.net/u010454261/article/details/53943788

【5】http://blog.csdn.net/u010454261/article/details/53943788

【6】http://stackoverflow.com/questions/38461033/cant-execute-a-simple-program-using-opencv-error-cant-find-the-entry-point-o

【7】http://blog.csdn.net/titer1/article/details/45070065

【8】https://gist.github.com/dynamicguy/3d1fce8dae65e765f7c4

【9】http://blog.csdn.net/u010566411/article/details/54317145

【10】http://stackoverflow.com/questions/35330553/python-cv2-linking-problems-while-downgrading-opencv-from-3-0-0-to-2-4-11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv ubuntu