一、安装的前提条件

一台装好系统的Raspbarry Pi,树莓派系统可自行到官网下载,也可到阿里盘下载,把系统镜像安装好,树莓派网络环境配置好,以及树莓派换好源。

本人安装的系统镜像:2021-05-07-raspios-buster-armhf-full

官网下载地址:Operating system images – Raspberry Pi

带图形化桌面和推荐软件:Raspbian Stretch with desktop and recommended software

二:正式进入安装环节

1、把树莓派中默认的python2切换到python3

树莓派默认的是python2,但是树莓派也自带了python3,所以切换一下就可以了,不建议卸载python2。

首先查看python的版本

python -V

利用下面的命令可以看到树莓派是自带了python2,和python3的。

whereis  python

树梅派安装python3 树莓派安装python2_raspberry pi

我们只需要修改软连接即可。

先删除软链接

sudo rm /usr/bin/python

将python3软链接上去

sudo ln -s /usr/bin/python3.7 /usr/bin/python

注意3.7是你的树莓派python的版本,根据自己实际情况填写即可。

在查询就可以看到是python3了。

树梅派安装python3 树莓派安装python2_raspberry pi_02

2、安装NumPy库

pip install numpy

3、把根目录扩大到整个SD卡

在命令行界面输入命令进入树莓派配置界面

sudo raspi-config

树梅派安装python3 树莓派安装python2_opencv_03

用上下键调整位置,选中Advanced Options这一行,点击键盘Enter键,进入,下面的界面。

树梅派安装python3 树莓派安装python2_raspberry pi_04

在这个界面选中Expand Filesystem,确认并重启树莓派。

4、安装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

5、下载OpenCv

可自行到GitHub上下载,也可在我的蓝奏云下载,链接放在下面

,在自己的电脑上下载下来,再利用VNC软件传输到树莓派上,放在/home/pi/Downloads文件目录下,注意这个路径一定要放对,要不后面可能编译不过。

蓝奏云链接:

opencv-4.2.0.zip:opencv-4.2.0.zip - 蓝奏云

opencv_contrib-4.2.0.zip:opencv_contrib-4.2.0.zip - 蓝奏云

解压:

cd /home/pi/Downloads
unzip opencv-4.2.0.zip
unzip opencv_contrib-4.2.0.zip

6、编译环节

进入目录,创建build文件夹,并进入。

cd /home/pi/Downloads/opencv-4.2.0
mkdir build
cd build

1、设置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-4.2.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..

注意:代码里边的python版本以及opencv的版本都是根据自己的实际要求修改,如果上边的opencv包放的路径不对的话,编译可能会不成功。

树梅派安装python3 树莓派安装python2_opencv_05

成功示例,这里我测试的是build2文件夹,第一次build里即可

2、编译

cd /home/pi/Downloads/opencv-4.2.0/build
make -j 4

编译时间很长耐心等待大约4-6个小时,编译到100%代表成功。

make成功后执行下面的命令,在build文件夹下执行:

cd /home/pi/Downloads/opencv-4.2.0/build
sudo make install

测试:

树梅派安装python3 树莓派安装python2_opencv_06

 出现opencv的版本代表安装成功。

7、编译过程中可能遇到的错误,没错误请略过

我在编译过程中遇到了两个错误:

1、第一个错误是缺失文件

树梅派安装python3 树莓派安装python2_树梅派安装python3_07

大致就是下面的这几个文件文件都放在蓝奏云的链接上了。

链接:opencv缺失文件.zip - 蓝奏云

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
boostdesc_lbgm.i
vgg_generated_48.i
vgg_generated_64.i
vgg_generated_120.i

可以下载到电脑上利用vnc软件来传输到树莓派上,并放在/home/pi/Downloads/opencv_contrib-4.2.0/modules/xfeatures2d/src目录下,然后重新输入make -j 4,进行继续编译。

2、第二个问题是:头文件不对

树梅派安装python3 树莓派安装python2_树莓派_08

解决方法:将/home/pi/Downloads/opencv-4.2.0/modules/features2d/test文件下的


test_descriptors_invariance.impl.hpp test_descriptors_regression.impl.hpp test_detectors_invariance.impl.hpp test_detectors_regression.impl.hpp test_invariance_utils.hpp


这几个文件复制粘贴到/home/pi/Downloads/opencv_contrib-4.2.0/modules/xfeatures2d/test这个目录下。

接着:

/home/pi/Downloads/opencv_contrib-4.2.0/modules/xfeatures2d/test/test_features2d.cpp

文件中的大约51行的位置去掉featuresd/test,修改成下面的样子。

树梅派安装python3 树莓派安装python2_opencv_09

/home/pi/Downloads/opencv_contrib-4.2.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp

文件中大约7-8行的位置去掉featuresd/test,修改成下面的样子。

树梅派安装python3 树莓派安装python2_opencv_10