文章目录
声明:本文中使用方法均为源码编译安装。
1. 前期准备
1.1 更换源
建议先替换掉树莓派默认源,这样下载会快一点,详情请看树莓派4B更新国内源(多个源版本)。
1.2 扩展系统至整个TF卡
在命令窗口中输入:
sudo raspi-config
选择Advanced Option
,回车确定
选择Expand Filesystem
,回车确定
确定后等待重启即可。
2. python3.73安装
2.1 安装依赖包
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev
sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
sudo apt-get install -y libncurses5-dev libncursesw5-dev xz-utils tk-dev
2.2 从Python网页中找到相应的版本,点击下载
将python3.73安装包下载到Downloads
中
cd Downloads/
下载文件
sudo wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
2.3 解压
sudo tar -zxvf Python-3.7.3.tgz
2.4 安装
进入生成的目录python-3.7.3
cd Python-3.7.3
sudo ./configure --prefix=/usr/local/python3
sudo make
2.6 测试
创建软连接,在命令窗口中输入下面指令:
sudo ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
sudo ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
测试
python3 -V
pip3 -V
3. opencv4.1安装
3.1 安装依赖库
安装numpy
sudo pip3 install numpy
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
3.2 下载OpenCV4.1.0
我一般会将软件下载至Download
文件夹中,因此在命令框中输入
cd Downloads/
然后将文件下载至Download
文件夹中
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv.git
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git
需要等待一段时间,嫌慢的也可以去官网直接下载完,再拷贝过来。
3.3 CMake配置
进入opencv
文件夹,并在其内创建build
文件夹。
cd Downloads/opencv
mkdir build
cd build
配置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/modules \
-D BUILD_EXAMPLES=ON \
-D WITH_LIBV4L=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
..
注意:
- OPENCV_EXTRA_MODULES_PATH=后面跟的是opencv/opencv_contrib/modules路径,需要对应自己下载opencv的路径;
- 最后一行还有两个点
..
,不是打错了,切记不要忽略。
3.4 编译
sudo make -j4 2>&1
中间可能会出现的错误:
-
fatal error: boostdesc_bgm.i: 没有那个文件或目录
解决方法:
下载文件,并将下载的文件拷贝到opencv_contrib/modules/xfeatures2d/src/下
重新编译sudo make -j4 2>&1
-
fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录
解决方案:
将opencv/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
拷贝到opencv_contrib/modules/xfeatures2d/test/下
将opencv_contrib/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"
将opencv_contrib/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"
并重新编译
sudo make -j4 2>&1
3.5 安装
sudo make install
3.6 测试是否成功安装
python3
import cv2
cv2.__version__