基于树莓派3B+Python3.5的OpenCV3.4的配置教程

时间:2022-10-13 03:33:09

配置过程历经千辛万苦,所以写下心得,以便后人乘凉

既然写一次教程,就从头开始写,只要按照教程走,基本不会出现意外

首先下载树莓派固件,我使用的是" 2018-03-13-raspbian-stretch.img "目前最新的树莓派官方固件,然后准备空的TF卡并格式化,然后使用Win32DiskImager烧写固件,插入树莓派上电开机,因为第一次操作出错概率非常高,所以不建议先安装其他东西,先完成编译再安装其他软件和库

建议在树莓派内打开此网页或复制文本到移动硬盘,操作时直接复制粘贴,减少出错概率

首先给apt换源,因为国内源的速度远超国外源,使用Ctrl+Alt+T打开命令行

安装vim,当然可以使用vi或nano,本文使用vim(命令行)

sudo apt-get install vim

编辑apt的配置文件(命令行)

sudo vim /etc/apt/sources.list

按insert键进入编辑模式,删除(或注释)原内容或备份文件,然后变更为,粘贴为Ctrl+Shift+V,保存为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

更新apt(命令行)

sudo apt-get update
sudo apt-get upgrade

(以我固件版本为准)系统已内置Python2.7和Python3.5,因为系统文件依赖Python2.7,为了保持系统稳定性,所以使用Python3.5,有的教程使用了虚拟空间,如有需要可以自行百度教程

给PIP换源(系统已内置PIP3,如果没有安装Python或PIP自行查找安装教程)

输入(命令行)

sudo vim /etc/pip.conf

变更文件内容为(本文使用的是阿里云源,也可以使用清华源,豆瓣源等源地址)

[global] 
index-url = http://mirrors.aliyun.com/pypi/simple/
[install] 
trusted-host=mirrors.aliyun.com

安装numpy(命令行),第一次使用pip安装时可能会比较慢,耐心等待

sudo pip3 install numpy

查看numpy的安装目录并记录(后面编译时需要,如果不带numpy编译可能会卡住)

python3
import numpy
numpy.__path__
quit()

扩大TF卡的空间,如果不做这步操作,后面会出问题,比如卡死

输入(命令行)

sudo raspi-config

然后选择" Advanced Options "然后选择" Expand Filesystem "然后重启树莓派

开始为OpenCV安装做准备,配置所需的库(一次一行)

1 sudo apt-get install build-essential git cmake pkg-config -y
2 sudo apt-get install libjpeg8-dev -y
3 sudo apt-get install libtiff5-dev -y
4 sudo apt-get install libjasper-dev -y
5 sudo apt-get install libpng12-dev -y
6 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
7 sudo apt-get install libgtk2.0-dev -y
8 sudo apt-get install libatlas-base-dev gfortran -y

然后下载OpenCV库和Contrib库(强烈建议在其他环境下载然后拷贝过来),如果需要其他版本,就修改后面的版本号

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

解压后在opencv-3.4.0文件夹里创建build文件夹,然后在命令行里面cd到此文件夹,开始cmake,以下内容为一行

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 PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..  

上面比其他教程多了句" WITH_LIBV4L=ON ",如果没有这个,可能会没法对相机参数进行设置并且会有很多问题(并没有逐一验证),其他路径建议逐条验证,如果不一样就修改为当前系统的路径

然后开始编译,此步不要使用make -j4等加速方法,非常容易报错,耐心等几个小时吧,欲速则不达

make && sudo make install

安装完后重启树莓派,然后就可以试试OpenCV了,记得全程都是Python3,如果路径错误或者加载环境不对,使用的是pip(默认pip2)都有可能导致错误,建议仔细检查后再执行命令

在此感谢以下Geeks

https://blog.csdn.net/lc_1994/article/details/52971408

https://blog.csdn.net/qq_37910312/article/details/72866242

https://*.com/questions/16390810/opencv-cant-set-resolution-of-video-capture