树莓派3B+ Opencv3.4安装配置

进行本文配置之前,请完成系统安装(参考链接)

1.更换apt镜像源

  • 打开命令行,安装vim(也可以安装nano)
sudo apt-get install vim
  • 编辑apt的配置文件
sudo vim /etc/apt/sources.list
  • 按Insert键进入编辑模式,保存为Ctrl+C,然后输入" :wq "
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
  • 保存后在命令行输入
sudo vim /etc/apt/sources.list.d/raspi.list
  • 变更文件内容为
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

2.更新apt

在命令行输入

sudo apt-get update
sudo apt-get upgrade

3.更换pip源

系统已内置pip3,本人用的是python3.5(推荐python3.4以上版本)

  • 命令行输入
sudo vim /etc/pip.conf
  • 变更文件内容为(这里使用的是阿里云源,也可以使用清华源,豆瓣源等源地址)
[global] 
index-url = http://mirrors.aliyun.com/pypi/simple/
[install] 
trusted-host=mirrors.aliyun.com

4.安装numpy(我的默认有,如果没有直接安装就好)

sudo pip3 install numpy

5.扩大TF卡的空间

我的16G直接就是默认全部,如果你的不是,按照下面的扩展就行

  • 命令行输入
sudo raspi-config
  • 选择 " Advanced Options " 然后选择" Expand Filesystem "然后重启树莓派

增大swap空间
修改/etc/dphys-swapfile文件,增大交换空间,以免编译ROS源码时出现内存不足现象。将CONF_SWAPSIZE 修改为 2048

CONF_SWAPSIZE=2048

6.安装Opencv配置所需依赖库

sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

7.下载OpenCV库和Contrib库(建议在其他环境下载然后拷贝过来,在线下载特别慢)

我用的是opencv3.4,可以自行下载其他版本

https://github.com/Itseez/opencv/archive/3.4.0.zip
https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip

8.cmake源码

解压后在opencv-3.4.0文件夹里创建build文件夹,然后在命令行里面cd到此文件夹

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON  .. 
  • 此处注意几点!!!
  1. 这个你要去替换成你自己的相对的路径
OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.0/modules
  1. " WITH_LIBV4L=ON " 这个依我个人经验,有地方有用,有地方也有点bug(网络摄像头cap的image会有error,xx bytes的溢出,但是不影响程序运行),具体我也很懵逼。。。

9. 编译安装

有说不要使用make -j4加速方法的,非常容易报错。我用了没错,可以试试~~

make && sudo make install

在这里你会发现会编译失败,提示fatal error: boostdesc_bgm.i: No such file or directory的错误。这是因为前面cmake时因为网络等原因无法下载 boostdesc 和 vgg_generated 下的 boostdesc_lbgm 和 vgg_generated 文件导致找不到文件而编译失败。
可以自行下载https://github.com/opencv/opencv_3rdparty/branches/stale?page=1
下载: “contrib_xfeatures2d_vgg_20160317” and "contrib_xfeatures2d_boostdesc_20161012"两个文件并将解压后的文件中的所有.i文件复制到opencv_contrib-3.4.0/modules/xfeatures2d/src目录下。
然后重新make,执行

 sudo ldconfig

10.最后

因编译后的库文件cv2.so被输出为cv2.cpython-35m-arm-linux-gnueabihf.so,这将导致该模块在Python3中无法import进来
我们到该库文件的安装目录/usr/local/lib/python3.5/site-packages/下,将其重命名为cv2.so:

主要参考下面的大神们

https://www.cnblogs.com/Pyrokine/p/8921285.html
https://www.jianshu.com/p/3180a253fe3c

你可能感兴趣的:(树莓派3B+ Opencv3.4安装配置)