@树莓派配置opencv环境
一、资料下载
此次用树莓派系统版本 2020-12-02
官网下载链接:
https://www.raspberrypi.org/downloads/raspberry-pi-os/
各种需要的文件:
链接:https://pan.baidu.com/s/1D41bZ1Dc6SHS0ZFcWR5nTg
提取码:gvv8
参考:
https://www.jianshu.com/p/56929416b4a1
开机配置树莓派https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC3%E8%AE%B2%EF%BC%9A%E4%B8%80%E5%8A%B3%E6%B0%B8%E9%80%B8%E9%85%8D%E7%BD%AE%E6%A0%91%E8%8E%93%E6%B4%BE.md
二、换源
系统安装开机后准备开始换源。这是使用远程ssh工具或者vnc都可以。
运行下面命令查看系统版本:
cat /etc/debian_version
如图显示版本为10.6.
以下是对应的版本解释
版本 | - |
---|---|
Debian 10 (buster) | 当前的稳定版本(stable) |
Debian 9 (stretch) | 旧的稳定版本(oldstable) |
Debian 8 (jessie) | 更旧的稳定版本(oldoldstable) |
换源一定要注意好!网上一些教程是之前的stretch版本,容易忽略,此时所用的树莓派系统是buster系统,在写镜像与系统源链接时要注意是buster而不是stretch。
接下来我们换清华的镜像源:
运行以下命令编辑源文件
sudo nano /etc/apt/sources.list
在第一行开头加一个#,注释掉之前的镜像源 ,并把以下内容添加到最后一行之后,再按键盘上的ctrl+o,再按回车保存,再按ctrl+x退出nano编辑器回到命令行界面。换源内容如下图所示。(注:千万注意不是stretch版本)
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
接下来换系统源,步骤与上述一致,注释添加保存退出。
sudo nano /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
完成后,再输入以下命令更新源列表并更新升级已安装软件包。
sudo apt-get update && sudo apt-get upgrade
更改pip源
新建~/.pip/pip.conf文件,写入其地址。
sudo mkdir ~/.pip
cd .pip
sudo nano pip.conf
在打开的文件中输入以下内容:
[global]
timeout = 500
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
extra-index-url= https://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=
mirrors.aliyun.com
pypi.douban.com
pypi.mirrors.ustc.edu.cn
这里可以指定多个pip源。按ctrl+o,再按回车保存,再按ctrl+x退出并回到命令行界面。
注:
国内源列表
阿里云 http://mirrors.aliyun.com/pypi/simple/
豆瓣 http://pypi.douban.com/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
中国科学院 http://pypi.mirrors.opencas.cn/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
Python官方 https://pypi.python.org/simple/
v2ex http://pypi.v2ex.com/simple/
三、安装python-opencv
python2上安装运行opencv
直接使用apt安装。
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
sudo apt-get install python-numpy
运行完后在命令行输入
再输入
import cv2
如下所示,则在python2中opencv安装完成。
安装python+OpenCV-4.3.0
此次使用的的是树莓派4B 8GB版本+64GB SD卡
系统版本为2020-12-02-raspios-buster-armhf-full
在安装之前确保文件系统以扩展至整张SD卡。
运行
sudo raspi-config
选择Advanced Option -->A1. Expand File System
之后重启树莓配。
重启后
依次运行以下命令,安装opencv所需要的库以及所用到的模块。
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install cmake-gui
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libtiff5-dev libpng12-dev libjpeg-devlibjasper-dev
sudo apt-get install libavcodec-dev libswscale-dev libv4l-dev libavformat-dev
sudo apt-get install libx264-dev libxvidcore-dev
sudo apt-get install python2.7-dev python3-dev
直接下载
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.5.1.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.5.1.zip
unzip opencv_contrib.zip
要注意的是opencv和contrib的版本必须对应。
******下载的太慢的话建议从网址下载之后再上传
https://github.com/opencv/opencv_contrib/releases
https://github.com/opencv/opencv/releases
打开网站下载这个
下载完成后通过远程文件传输工具 FileZilla上传到树莓派
上传完成后用以下命令依次解压(注:unzip后面跟着的是压缩包的文件名,此次下载的为4.5.1版本,)
unzip opencv-4.5.1
unzip opencv_contrib-4.5.1
接下来配置python,安装Python的包管理器pip与umpy库
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo python get-pip.py
pip install numpy
创建个build文件夹
cd ~/opencv-4.5.1/
mkdir build
cd build
启动CMake-GUI
cmake-gui
界面如下:
首先点击Browse Source…选择opencv-4.5.1文件夹目录位置(/home/pi/opencv-4.5.1)
Browse build…选择已建立好的build文件下(/home/pi/opencv-4.5.1/build)
点击Configure出来个小框框点击finish,运行完成后会出现许多红色项目。
1.BUILD_opencv_world,后面点击勾上;
2.CMAKE_BUILD_TYPE 值处输入RELEASE;
3.OPENCV_ENABLE_NONFREE,后面点击勾上;
4.OPENCV_EXTRA_MODULES_PATH,选择opencv_contrib文件夹中的modules文件夹(/home/pi/opencv_contrib-4.5.1/modules)。
完成以上四步点击Configure,如果还有红色项目继续点击Configure,直到红色项目消失,再点击Generate,运行完后关闭就可以了。
接下来在文件夹里添加一些缺少的文件。
同样下载好文章最开始百度网盘链接里的文件,通过远程文件传输工具 FileZilla把下图中的所有文件传输到/home/pi/opencv_contrib-4.5.1/modules/xfeatures2d/src路径下即可。
将文件中所有.hpp文件通过远程文件传输工具 FileZilla把下图中的所有文件传输到/home/pi/opencv_contrib-4.5.1/modules/xfeatures2d/test路径下。
找到/home/pi/opencv_contrib-4.5.1/modules/xfeatures2d/test/test_features2d.cpp文件并打开
将其内的头文件
#include “features2d/test/test_detectors_regression.impl.hpp”
#include “features2d/test/test_descriptors_regression.impl.hpp”
改成以下头文件并保存
#include “test_detectors_regression.impl.hpp”
#include “test_descriptors_regression.impl.hpp”
同理找到/home/pi/opencv_contrib-4.5.1/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp文件并打开将其文中的头文件名
#include “features2d/test/test_detectors_invariance.impl.hpp”
#include “features2d/test/test_descriptors_invariance.impl.hpp”
改成如下,并保存。
#include “test_detectors_invariance.impl.hpp”
#include “test_descriptors_invariance.impl.hpp”
完成以上步骤后回到命令界面输入:
make
开始漫长的编译过程~~~
编译完成后,最重要的一步build目录下输入:
sudo make install
完成后 差不多了。检查一下是否成功。
输入python3 再输入 import cv2,如下图所示,则安装成功。
(输入cv2.version 也可以查看版本)