树莓派——python3.73+opencv4.1安装教程(详细)


声明:本文中使用方法均为源码编译安装。

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

中间可能会出现的错误:

  1. fatal error: boostdesc_bgm.i: 没有那个文件或目录
    解决方法:
      下载文件,并将下载的文件拷贝到opencv_contrib/modules/xfeatures2d/src/下
    重新编译

    sudo make -j4 2>&1
    
  2. 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__
  • 0
    点赞
  • 11
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论

打赏作者

不懂音乐的欣赏者

你的鼓励将是我最大的创作动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值