Ubuntu16.04安装Opencv3.4.4+opencv_contrib-3.4.4(python2,python3皆可运行)

因为选择了《智能机器人》这门课程,做实验时需要用到opencv,所以记录安装以及填坑的过程,供更多的人参考。

环境:Ubuntu16.04 + CUDA9.0 + Python2.7 / Python3.5

1.下载opencv-3.4.4和opencv_contrib-3.4.4压缩包

方法一.去官网下载,但是这种方式很慢

https://www.opencv.org/releases.html

方法二.去我的主页找到资源进行下载

https://download.csdn.net/download/qq_33500415/12013661

2.解压缩zip包

unzip opencv-3.4.4.zip
unzip opencv_contrib-3.4.4

3.安装依赖库和cmake执行以下命令

sudo apt-get update
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

4.进入压缩后的文件夹

cd opencv-3.4.4

5.创建build并进入build文件夹

mkdir build && cd build

6.CMAKE编译

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.4/modules -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D CUDA_ARCH_BIN="6.1" -D CUDA_ARCH_PTX="" -D CUDA_FAST_MATH=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_EXAMPLES=ON ..

具体的参数含义参照https://blog.csdn.net/weixin_42271913/article/details/88997729

6.1 CMAKE出现的问题

在这里插入图片描述
下载IPPICV时会卡在这里,不要等了,直接把要的文件手动下载下来,放在文件夹内,然后找到进入到opencv-3.4.4的3rdparty目录下面的ippicv目录,找到ippicv.cmake文件,修改倒数第九行的内容为刚下载的ippicv文件的路径。
在这里插入图片描述
接下来还会遇到这样的下载情况,一般要下载很长时间,那就等吧,一次没下完,多执行几次命令。在这里插入图片描述
这样生成配置文件就成功了。在这里插入图片描述

7.执行make命令

sudo make -j8 #看自己电脑CPU的核数,单核直接sudo make

在这里插入图片描述
这样就开始编译了
在这里插入图片描述
这样就编译完成了!

7.1 make过程中的问题

报错内容
/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `.bss’ can not be used when making a shared object; recompile with -fPIC

解决方法:
不管是libavformat.a还是 libavcodec.a 、libavutil.a或libswscale.a引起的报错,都可以先把这几个文件从/usr/local/lib中移动别处先放着,等到编译完成了再放回去。

8.执行安装命令

sudo make install

9.配置环境变量

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

打开一个空白文件,添加如下内容

/usr/local/lib

让配置生效

sudo ldconfig

10.配置bash

sudo gedit /etc/bash.bashrc

在文末添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

保存,执行如下命令使得配置生效

source /etc/bash.bashrc

更新

sudo updatedb

11.配置python2运行opencv

因为我的opencv在python3环境下能运行,但在python2下报错缺少libopencv_contrib.so.2.4.0或者无法导入cv2
所以接在来配置python2可以运行opencv
选择/usr/local/lib/python2.7/dist-packages
在该目录下新建一个 opencv.pth
添加opencv中关于python2.7的库的路径如下
在这里插入图片描述

/usr/local/python/cv2/python-2.7

然后就可以看到python2和python3都能调用opencv
在这里插入图片描述

12.测试

cd opencv-3.4.4/samples/cpp/example_cmake

目录里有官方cmake的example来测试下

cmake .
make
./opencv_example

可以看到屏幕左上角有打开了摄像头的框框,有一个hello opencv !

THAT‘S ALL !
如果有什么错误之处,还请大家指正。另外参考了一些大佬的文章,见下述引用!

https://blog.csdn.net/qxqxqzzz/article/details/100730688
https://blog.csdn.net/weixin_42271913/article/details/88997729
https://blog.csdn.net/YuYunTan/article/details/85017065
https://blog.csdn.net/u011897411/article/details/89743448
https://blog.csdn.net/u011897411/article/details/89744763

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值