树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7

树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7

  • 创作时间:2019.7.25
  • 参考博文
  • 首先强调
  • 编译安装步骤

创作时间:2019.7.25

强调时间的目的就是,网上很多文章的教程已经过时了,照着弄,会浪费很多时间。

参考博文

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/
https://blog.csdn.net/leaves_joe/article/details/67656340
(按照上面两个就应该可以安装上了,不行的话下面的两个链接也可以看看)
https://blog.csdn.net/Ykanon/article/details/90045201
https://blog.csdn.net/jacka654321/article/details/80728795

首先强调

2019.7.25
现在去树莓派官方下载的系统已经是最新的Raspbian Buster我一开始装的就是最新的Raspbian Buster系统,在安装依赖项和编译opencv3.4.0+opencv_contrib 3.4.0时总是出现一堆的问题,

最后,重装了树莓派的系统,换成Raspbian Stretch的操作系统,再按照如下的方法,编译opencv-3.4.0+opencv_contrib-3.4.0的源码。

树莓派以往版本下载:http://www.shumeipai.net/resource.php?mod=view&rid=1145

同时,参考博文中的第一步就是扩展文件系统,提醒最好不要扩展文件系统,除非的的SD卡容量很小,我扩展文件系统后,发现用vnc viewer 连接树莓派时,虚拟桌面没有了,只能命令行操作。

编译安装步骤

首先打开终端(Raspbain和Ubuntu的快捷键都是Ctrl + Alt +t)

  1. 软件源更新、升级:
// 更新是必须的
sudo apt-get update
// 升级则不是必须的,我就没升级
sudo apt-get upgrade
  1. 安装构建OpenCV的相关工具
sudo apt-get install build-essential cmake  git pkg-config
  1. 安装常用图像工具包
// 安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev 
// 安装tif格式图像工具包
sudo apt-get install libtiff5-dev 
// 安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev 
// 安装png图像工具包
sudo apt-get install libpng12-dev
  1. 再安装视频I/O包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
  1. 安装gtk2.0(安装gtk2.0,树莓派很可能下载错误,更换中科大或者清华源即可,记住,更换树莓派默认的软件源必须先备份,也有可能出现包版本过高的情况,需要将依赖包降级安装):
    更换软件源:https://blog.csdn.net/la9998372/article/details/77886806
    实在找不到安装包和依赖项时,也可以手动下载对应的包和依赖项,然后手动安装 http://wiki.opencv.org.cn/index.php/Debian%E4%B8%8B%E5%AE%89%E8%A3%85
sudo apt-get install libgtk2.0-dev 
  1. 安装优化函数包
sudo apt-get install libatlas-base-dev gfortran
  1. 如果你希望在Python中使用OpenCV,那么你还需要安装Python的开发包
sudo apt-get install python-dev python3-dev

到此OpenCV的依赖包全部安装好,下面开始编译源码

  1. 下载OpenCV源码(源码要放在有执行权限的位置,不是安装位置)

我是直接在windows中去opencv官网直接下载的源码,然后用vnc viewer传到树莓派桌面的,这样下载比较快,下面的操作是用wget下载的,速度很慢。

/** 使用wget下载OpenCV源码**/
// 下载OpenCV
wget -O opencv-3.4.0.zip https://github.com/Itseez/opencv/archive/3.4.0.zip
// 解压OpenCV
unzip opencv-3.4.0.zip
// 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.0.zip https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip
// 解压OpenCV_contrib库:
unzip opencv_contrib-3.4.0.zip
  1. 进入opencv-3.4.0源码文件夹内(我的都在桌面),新建release文件夹,
//进入源码文件夹内
cd ~/Desktop/opencv-3.4.0/
// 新建release文件夹
mkdir release
// 进入release文件夹
cd release
  1. 然后进行cmake
    设置cmake编译参数,安装目录默认为/usr/local ,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点(注意!如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/Desktop/opencv_contrib-3.4.0/modules):
cmake -D CMAKE_BUILD_TYPE=RELEASE \
> -D CMAKE_INSTALL_PREFIX=/usr/local \
> -D INSTALL_PYTHON_EXAMPLES=ON \
> -D OPENCV_EXTRA_MODULES_PATH=~/Desktop/ opencv_contrib-3.4.0/modules/\
> -D BUILD_EXAMPLES=ON ..

cmake完成后结果如下:

树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7_第1张图片

  1. 设置交换分区大小
    在用make编译源码前,需要先设置树莓派的交换分区的大小,默认是100,改成1024.
sudo nano /etc/dphys-swapfile

将CONF_SWAPSIZE=100注释,然后添加CONF_SWAPSIZE=1024,保存退出,如图

树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7_第2张图片

  1. 激活设置好的交换分区
sudo /etc/init.d/dphys-swapfile stop 
sudo /etc/init.d/dphys-swapfile start

如图:

在这里插入图片描述

  1. 以管理员身份编译
/** make命令参数-j4指允许make使用最多4个线程进行编译
* 所以可以根据自己机器的情况进行更改,我的pi2 model b是四核处理器
**/
sudo make -j4
//我编译到一半突然退出了,清除.o文件后,没有加上-j4,重新编译.
make clean
sudo make
//编译了好久才完,幸好没再出问题。

树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7_第3张图片

  1. 安装和更新链接库
// 安装
sudo make install
// 更新动态链接库
sudo ldconfig
  1. 恢复交换分区大小,完成激活分区
sudo nano /etc/dphys-swapfile
//将CONF_SWAPSIZE=1024注释,然后恢复CONF_SWAPSIZE=100,保存退出
//激活设置好的交换分区
sudo /etc/init.d/dphys-swapfile stop 
sudo /etc/init.d/dphys-swapfile start
  1. 测试结果图

树莓派+源码安装opencv-3.4.0+opencv_contrib-3.4.0+python2.7_第4张图片

你可能感兴趣的:(树莓派,Opencv学习)