树莓派安装OpenCV 3.4.3

由于在Raspbian上没有OpenCV的预安装包用apt也装不了,所以如果要在树莓上用OpenCV那只能蛋疼地去下载本地编译安装了。

本文是一个极其蛋疼的经历的记录,如果你没有什么耐性尝试那么请直接飘过。

我使用的是Raspberry PI 3+ ,首先要更换源,推荐使用(清华大学)[https://mirror.tuna.tsinghua.edu.cn/help/raspbian/]的,其它的源可能会由于cmake版本过低导致无办法编译。

打开/etc/apt/sources.list文件修改源

pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list

改使用以下的源:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib

注:OpenCV for Python3的安装办法请参考:Raspbian Stretch: Install OpenCV 3 + Python on your Raspberry Pi 在编译过程中会出现一些C++的警告,直接无视。且不要安装到虚环境,因为其它的程序经常需要使用sudo(因为不少的第三方包由其是GPIO类的包会直接引用/dev/mem所以没有权限)一但安装到虚环境整个系统反而会变得不可用。所以不建议使用Python的虚环境。

更新系统安装包

首先更新系统包。

sudo apt-get update
sudo apt-get upgrade
#sudo rpi-update 
#(can be skipped, but recommended) (don't do it if you will use the RPI cam as recommended by official RPI Website)
sudo reboot now

然后是下载各种依赖包和删除Raspbian预装的libreoffice(又大又没什么鸟用的文档工具,至少在上位机上没啥用),我将它们全部写到一起,最好的办法是将它们存到一个文件里一次性执行,:

sudo apt-get purge wolfram-engine --assume-yes
sudo apt-get purge libreoffice* --assume-yes
sudo apt-get clean --assume-yes
sudo apt-get autoremove --assume-yes

sudo apt-get update && sudo apt-get upgrade --assume-yes
sudo apt-get install build-essential cmake pkg-config --assume-yes
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev --assume-yes
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev --assume-yes
sudo apt-get install libxvidcore-dev libx264-dev --assume-yes
sudo apt-get install libgtk2.0-dev libgtk-3-dev --assume-yes
sudo apt-get install libcanberra-gtk* --assume-yes
sudo apt-get install libatlas-base-dev gfortran --assume-yes
sudo apt-get install python2.7-dev python3-dev --assume-yes

执行完上述指令之后就可以下载OpenCV的安装包了,以下是自动下载OpenCV与解压缩的指令

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.3.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.3.zip
unzip opencv_contrib.zip

修改数据交互区

将数据交互区增大这样可以提高你机器的编译速度,先打开dphys-swapfile文件:

sudo nano /etc/dphys-swapfile

然后将CONF_SWAPSIZE改为:

CONF_SWAPSIZE=1024

执行以下指令重启服务:

$ sudo /etc/init.d/dphys-swapfile stop && sudo /etc/init.d/dphys-swapfile start

编译

安装依赖完成之后就可以进行编译配置。

cd ~/opencv-3.4.3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D WITH_GTK=ON \
    -D BUILD_TESTS=OFF \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..

注:上以这个Build指令只能用于树莓3或者arm7l的芯片,如果在树莓Zero上调用最终编译出来的版本都是运行不了的。

配置完成后就可以开始编译了,执行以下脚本大约需要二小时左右(这个过程有点蛋疼给点耐性等吧):

$ sudo make -j4

完成编译后直接安装

$ sudo make install && sudo ldconfig

自动装载摄像头驱动

在Raspberry上用OpenCV2当然是为了能用Raspberry上的摄像头吧,所以在安装好OpenCV以后最好先用raspbi-config确认一下是否已经启用摄像头。另外,安装完OpenCV2后是不会自动装载摄像头的(v4l2驱动),需要手动执行以下的指令才可以在OpenCV内调用摄像头:

sudo modprobe bcm2835-v4l2

如果要在系统加载时载入可以在 /etc/modules 文件内加入这个驱动,在文件内打开:

sudo nano /etc/modules

加入:

bcm2835-v4l2

最后,记得将交互区大小改回100保存后重启。

重新进入 python 命令行,测试CV2是否安装成功:

>>> import cv2
>>> cv2.__version__

总结

在树梅3上使用OpenCV感觉还是很顺畅的,只要不使用 dnn模块或者其它人工智能相关的模块树莓3的运算速度还是能跟得上的,拿它做个图传或者云台完全是绰绰有余。

转载于:https://my.oschina.net/Dotnetage/blog/2413683

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值