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版本的
opencv_contrib也是下载对应的4.3.0版本
下载完后通过文件传输工具或者U盘传输到树莓派中
这里通过文件传输工具FileZilla传输
配置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热心网友
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