一、安装的前提条件
一台装好系统的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
我们只需要修改软连接即可。
先删除软链接
sudo rm /usr/bin/python
将python3软链接上去
sudo ln -s /usr/bin/python3.7 /usr/bin/python
注意3.7是你的树莓派python的版本,根据自己实际情况填写即可。
在查询就可以看到是python3了。
2、安装NumPy库
pip install numpy
3、把根目录扩大到整个SD卡
在命令行界面输入命令进入树莓派配置界面
sudo raspi-config
用上下键调整位置,选中Advanced Options这一行,点击键盘Enter键,进入,下面的界面。
在这个界面选中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包放的路径不对的话,编译可能会不成功。
成功示例,这里我测试的是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
测试:
出现opencv的版本代表安装成功。
7、编译过程中可能遇到的错误,没错误请略过
我在编译过程中遇到了两个错误:
1、第一个错误是缺失文件
大致就是下面的这几个文件文件都放在蓝奏云的链接上了。
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、第二个问题是:头文件不对
解决方法:将/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,修改成下面的样子。
将/home/pi/Downloads/opencv_contrib-4.2.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp
文件中大约7-8行的位置去掉featuresd/test,修改成下面的样子。