树莓派(Raspbian Buster)下的opencv、opencv_contrib的源码安装

Opencv介绍

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
下载的opencv安装包是基本包,而opencv_contrib是有额外模块的包,比如人脸识别中的face模块。源码安装时,opencv_contrib只能在opencv配置编译时一起带上,不能在opencv编译安装后再装。

安装依赖包

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

下载源码包

1、 利用命令下载

 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

但是这样一般下载比较慢

2、 先下载到电脑本地,再传到树莓派上

opencv官方下载地址
opencv_contrib官方下载地址

这里我下载的是opencv 4.3.0版本的
树莓派(Raspbian Buster)下的opencv、opencv_contrib的源码安装_第1张图片
opencv_contrib也是下载对应的4.3.0版本
树莓派(Raspbian Buster)下的opencv、opencv_contrib的源码安装_第2张图片
下载完后通过文件传输工具或者U盘传输到树莓派中
这里通过文件传输工具FileZilla传输
树莓派(Raspbian Buster)下的opencv、opencv_contrib的源码安装_第3张图片

配置Cmake

进入到opencv后,新建个build目录用来编译

cd /home/pi/Downloads/opencv-4.3.0
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=../../opencv_contrib-4.3.0/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 \
..

CMAKE_BUILD_TYPE=RELEASE \ 代表编译类型为发行版本
CMAKE_INSTALL_PREFIX=/usr/local \ 安装路径
INSTALL_C_EXAMPLES=ON \ C demo
INSTALL_PYTHON_EXAMPLES=ON \ Python demo
OPENCV_EXTRA_MODULES_PATH=…/…/opencv_contrib-4.3.0/modules \ OpenCV_Contrib路径,路径以你下载的open_contrib包为准
BUILD_EXAMPLES=ON \ 编译demo
WITH_LIBV4L=ON \ 开启Video for Linux
PYTHON3_EXECUTABLE=/usr/bin/python3.7 \ Python3路径
PYTHON_INCLUDE_DIR=/usr/include/python3.7 \ Python3 include文件夹
PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \ Python3库
PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ Python3 Numpy安装路径
… 表示Makefile在上层目录

配置时间为几分钟

编译

配置成功后进行编译

sudo make -j4

-j4 表示可4个线程同时进行,速度较快,但需要根据树莓派配置来决定,如果太大,可能会导致在编译时死机。

编译过程会持续几个小时,非常之久。

!注意:即使是官网的源码包,在编译过程中也可能会出现错误,出现错误后根据错误提示通过搜索引擎查找解决办法,因为是官网包,所以遇到了问题也会有很多人遇到过。在这里我遇到了两个问题,列举一下帮助遇到相同问题的后人。

1、fatal error: boostdesc_bgm.i: No such file or directory
SHOUT OUT TO 安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案

百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取码:e1wc

下载所有文件复制到**opencv_contrib/modules/xfeatures2d/src/**下
继续执行

sudo make -j4

2、fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
SHOUT OUT TO github issue热心网友
树莓派(Raspbian Buster)下的opencv、opencv_contrib的源码安装_第4张图片

cp /home/pi/Downloads/opencv-4.3.0/modules/features2d  /home/pi/Downloads/opencv-4.3.0/build

安装

sudo make install

安装过程比较快,在几分钟之内。

检测是否安装成功

python3

进入python3的交互模式

import cv2

没有错误提示说明opencv安装成功

from cv2 imort face

没有错误提示说明opencv_contrib安装成功

卸载

cd /home/pi/Downloads/opencv-4.3.0/build

进入到opencv下的build

sudo make uninstall

卸载opencv及opencv_contrib

cd /usr
sudo find . -name "*opencv*" | xargs sudo rm -rf 

删除系统相关文件
xargs表示将管道前的结果作为管道后的参数


STOUT OUT TO

OpenCV官网安装指导
微雪课堂搭建OpenCV

你可能感兴趣的:(Raspberry,Pi)