树莓派4B系列3:安装pip3+安装FFmpeg+安装opencv4.3.0(增加SWAP空间)

一、安装pip3

1.安装setuptools:

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz #下载
tar -zxvf setuptools-19.6.tar.gz #解压setuptools-19.6.tar.gz
cd setuptools-19.6 #进入解压缩后的文件夹
python3 setup.py build 
python3 setup.py install

运行到第4行,报错ModuleNotFoundError: No module named 'distutils.util',执行下步,安装distutils

sudo apt-get install python3-distutils

出现“running build running build_py”表示安装成功

2.安装pip3:

sudo apt-get install pyton3-pip
#查看pip3版本
pip3 -V #出现版本号意味着安装成功

至此,pip3安装成功。

二、安装FFmpeg

FFmpeg是一套开源的音视频编解码库,opencv可以依赖于此做一些音视频处理。

1.更新源并且安装git

sudo apt-get update #更新
sudo apt-get install git #安装git

2.下载x264源码

 git clone https://git.videolan.org/git/x264.git

3.新建config_x264.sh脚本文件

touch config_x264.sh

利用vi打开后添加如下内容

#!/bin/sh
./configure \
--disable-shared --enable-static \
--enable-strip \
--disable-cli

4.增加执行权限后,依次执行以下命令,make可能需要几分钟,耐心等待。

chmod +x config_x264.sh

./config_x264.sh
make -j4
sudo make install

5.下载FFmpeg

wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2 #下载
tar jxvf ffmpeg-4.2.2.tar.bz2 #解压
cd ffmpeg-4.2.2.tar.bz2

6.新建config_ffmpeg.sh脚本文件

touch config_ffmpeg.sh

利用vi打开后添加如下内容

#!/bin/sh
PREFIX=/usr/local
./configure \
--enable-gpl    --enable-version3 --enable-nonfree \
--enable-static --disable-shared \
\
--prefix=$PREFIX \
\
--disable-opencl \
--disable-thumb \
--disable-pic \
--disable-stripping \
\
--enable-small \
\
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
\
--disable-doc \
--disable-htmlpages \
--disable-podpages \
--disable-txtpages \
--disable-manpages \
\
--disable-everything \
\
--enable-libx264 \
--enable-encoder=libx264 \
--enable-decoder=h264 \
--enable-encoder=aac \
--enable-decoder=aac \
--enable-encoder=ac3 \
--enable-decoder=ac3 \
--enable-encoder=rawvideo \
--enable-decoder=rawvideo \
--enable-encoder=mjpeg \
--enable-decoder=mjpeg \
\
--enable-demuxer=concat \
--enable-muxer=flv \
--enable-demuxer=flv \
--enable-demuxer=live_flv \
--enable-muxer=hls \
--enable-muxer=segment \
--enable-muxer=stream_segment \
--enable-muxer=mov \
--enable-demuxer=mov \
--enable-muxer=mp4 \
--enable-muxer=mpegts \
--enable-demuxer=mpegts \
--enable-demuxer=mpegvideo \
--enable-muxer=matroska \
--enable-demuxer=matroska \
--enable-muxer=wav \
--enable-demuxer=wav \
--enable-muxer=pcm* \
--enable-demuxer=pcm* \
--enable-muxer=rawvideo \
--enable-demuxer=rawvideo \
--enable-muxer=rtsp \
--enable-demuxer=rtsp \
--enable-muxer=rtsp \
--enable-demuxer=sdp \
--enable-muxer=fifo \
--enable-muxer=tee \
\
--enable-parser=h264 \
--enable-parser=aac \
\
--enable-protocol=file \
--enable-protocol=tcp \
--enable-protocol=rtmp \
--enable-protocol=cache \
--enable-protocol=pipe \
\
--enable-filter=aresample \
--enable-filter=allyuv \
--enable-filter=scale \
--enable-libfreetype \
\
--enable-indev=v4l2 \
--enable-indev=alsa \
--enable-indev=alsa \
--enable-outdev=alsa \
\
--enable-omx \
--enable-omx-rpi \
--enable-encoder=h264_omx \
\
--enable-mmal \
--enable-hwaccel=h264_mmal \
--enable-decoder=h264_mmal \
\

7.增加执行权限后,依次执行以下命令,make可能需要几分钟,耐心等待。

chmod +x config_ffmpeg.sh

./config_ffmpeg.sh
make -j4
sudo make install

在执行./config_ffmpeg.sh时会报错:ERROR:OMX_Core.h not found,输入下面命令解决

sudo apt-get install libomxil-bellagio-dev

输入ffmpeg回车,出现h264_omx和264_mmal字样则表明ffmpeg安装成功,已支持H.264的硬件编解码器。

三、安装opencv4.3.0

1.准备工作:将目录扩展到整个SD卡,即输入以下命令后选择“Advanced Options”回车后,选择“Expand Filesystem Ensure......”回车确认。

sudo raspi-config

2.安装numpy,安装opencv所需要的依赖:

#树莓派安装numpy可能非常缓慢甚至终止,因此需要emmmm工具,国内其他pip源我是没找到对应树莓派的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.本地下载opencv4.3.0和opencv_contrib4.3.0压缩包后利用filezilla传到根目录上,解压unzip(进入连接后下载所需版本即可)。

opencv4.3.0:https://opencv.org/releases/

opencv_contrib4.3.0:https://github.com/opencv/opencv_contrib/releases

4.增加SWAP空间能够使用Raspberry Pi的所有四个内核来编译OpenCV ,加快编译速度,并且不会由于内存耗尽而导致编译挂起

 sudo vi /etc/dphys-swapfile

#注释掉CONF_SWAPSIZE=100
#添加一行
CONF_SWAPSIZE=2048

5.Cmake配置:

cd opencv-4.3.0
mkdir build #新建build文件夹
cd build

输入以下配置,注意需要根据自己的路径进行修改,否则会报错。回车后静等几分钟。(\表示将代码延续到下一行)

这里配置必须认真修改,否则make花费好几个小时后依旧没安装好opencv。

cmake -D CMAKE_BUILD_TYPE=RELEASE \  #代表编译类型为发行版本
> -D CMAKE_INSTALL_PREFIX=/usr/local \  #安装路径
> -D INSTALL_C_EXAMPLE=ON \  #C demo
> -D INSTALL_PYTHON_EXAMPLE=ON \  #python demo
> -D OPENCV_EXTRA_MODULES_PATH=/home/cyj/opencv_contrib-4.3.0/modules \ #OpenCV Contrib路径
> -D BUILD_EXAMPLES=ON \ #编译demo
> -D WITH_LIBV4L=ON \ #开启Video for Linux
> -D WITH_FFMPEG=ON \ #开启FFmpeg
> -D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \ #Python3.7路径
> -D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \ #Python3.7 include文件夹
> -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \ #Python3.7库
> -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.7/dist-packages/numpy/core/include \ #Python3 Numpy安装路径,有时路径在/usr/lib/python3.7/dist-packages/numpy/core/include,根据自己路径定
..

6.cmake生成Makefile后开始编译:需要比较长的时间,大概3-4小时

make

中途会出错:

1)在72%会报错:原因是boostdesc和vgg文件缺失导致编译失败,在网上搜索这两个文件夹,将其中11个.i文件利用filezilla全部上传至/home/用户名/opencv_contrib-4.3.0/modules/xfeatures2d/src目录下。

                                                          

继续make,会从断点处继续编译。

2)在73%会报错,如下是.../opencv_contrib-4.3.0/modules/xfeatures2d/test/test_features2d.cpp引入的头文件不存在。

解决方法:打开test_features2d.cpp查看出错处#include,发现两个头文件test_detectors_regression.impl.hpp和test_descriptors_regression.impl.hpp都找不到。此处需要将.../opencv-4.3.0/moduls/features2d/test/目录下的这两个头文件拷贝到.../opencv_contrib-4.3.0/modules/xfeatures2d/test/目录下,并且修改test_features2d.cpp头文件的路径。修改为:

#include "test_detectors_regression.impl.hpp"
#include "test_descriptors_regression.impl.hpp"

3)继续make后又报错:是.../opencv_contrib-4.3.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp引入的头文件不存在。

解决方法:查看test_rotation_and_scale_invariance.cpp引入的头文件,发现两个头文件test_detectors_invariance.impl.hpp和test_descriptors_invariance.impl.hpp都找不到。同上步解决方法,将.../opencv-4.3.0/moduls/features2d/test/目录下的这两个头文件拷贝到.../opencv_contrib-4.3.0/modules/xfeatures2d/test/目录下,并且修改test_rotation_and_scale_invariance.cpp头文件路径:

#include "test_detectors_invariance.impl.hpp"
#include "test_descriptors_invariance.impl.hpp"

4)继续make后又报错:是上面引入的test_detectors_invariance.impl.hpp需要头文件test_invariance_utils.hpp。

解决方法:将.../opencv-4.3.0/moduls/features2d/test/目录下的test_invariance_utils.hpp拷贝到.../opencv_contrib-4.3.0/modules/xfeatures2d/test/即可。

这些报错是我安装过程中出现的,如果您在编译过程中出现其他的错误,可以仔细查看报错信息,使用类似的解决方法进行处理。

继续make,直至100%编译结束。

7.安装:

sudo make install

8.测试是否安装成功:

python3
import cv2
cv2.__version__
#输出版本意味着安装成功

注意:

如果cmake配置错误或者make错误:

make clean #清除上次make命令产生的object文件以及可执行文件

然后直接删除build目录即可

rm -r build

至此,树莓派4B成功安装pip3、numpy、FFmpeg和opencv4.3.0(增加SWAP空间)。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值