树莓派4B笔记 --- Opencv-3.4.8 + Opencv_contrib-3.4.8 源码编译安装

OpenCV官方文档:OpenCV3.4.8文档

下载 opencv 及 opencv_contrib 的源代码

opencv全部版本下载地址:https://github.com/opencv/opencv/releases
opencv_contrib全部版本下载地址:https://github.com/opencv/opencv_contrib/releases
关于Opencv-3.4.8的源代码我已经上传到网盘了,可以直接下载:
链接:https://pan.baidu.com/s/1OrVECTtrx03LhH5rlWQppA
提取码:pk69

解决Github下载慢的问题

打开本机上的Hosts文件
windows系统下 Hosts 文件的地址是C:\Windows\System32\drivers\etc
ubuntu系统下 Hosts 文件的地址是/etc/hosts
我们可以利用https://www.ipaddress.com/ 来获得以下三个GitHub域名的IP地址:

github.com
github.global.ssl.fastly.net
codeload.github.com

查到IP地址后,用以下格式将IP地址和域名一起写入 Hosts 文件并保存
在这里插入图片描述
在终端或CMD中,执行以下命令,刷新 DNS 缓存

ipconfig /flushdns

刷新之后,再从github上下载就可以达到 100KB/s + 的速度
虽然不算很快,但也不至于会因为网络链接问题下载失败了
注意:静态IP经常会发生变化,下载Github代码之前,请先检查一下IP地址对不对,保证每次都是最新的地址

安装aptitude

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。
树莓派在换源后,apt-get install 安装软件, 会报“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”。
这个错误出现的主要原因是,系统中已经安装了被依赖的包的高版本,并且版本高于所要求的这个版本,不匹配导致安装失败。
虽然这种报错可以手动安装指定版本的软件包,但是各种互相依赖的一环套一环,会出现各种新的报错。
aptitude可以根据安装时检测到的不满足依赖关系的软件包主动提出解决方案来完成安装。
非常重要!!!一定要在换源之前安装好aptitude,亲测在换源后装aptitude也会出现软件包依赖关系不匹配的报错

sudo apt-get install aptitude

树莓派换源

  1. 备份源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
  1. 使用管理员权限,编辑/etc/apt/sources.list 文件
sudo nano /etc/apt/sources.list
  1. #注释掉原文件内容,写入以下内容
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
  1. 使用管理员权限,编辑/etc/apt/sources.list.d/raspi.list文件
$ sudo nano /etc/apt/sources.list.d/raspi.list
  1. #注释掉原文件内容,写入以下内容
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
  1. 同步更新源
sudo apt-get update
  1. 更新已安装的软件包(不必须)
sudo apt-get upgrade

安装Opencv的相关工具

如果你的树莓派做了换源,一定要用aptitude来装以下工具包!!!否册某些软件包会报出上述错误。

  1. 安装cmake编译器
sudo apt-get install build-essential cmake git pkg-config
  1. 安装OpenCV的图像工具包
sudo aptitude install libjpeg8-dev 
sudo aptitude install libtiff5-dev 
sudo aptitude install libjasper-dev 
sudo aptitude install libpng12-dev 
  1. 安装视频I/O包
sudo aptitude install libavcodec-dev
sudo aptitude install libavformat-dev
sudo aptitude install libswscale-dev
sudo aptitude install libv4l-dev
  1. 安装gtk2.0和优化函数包
sudo aptitude install libgtk2.0-dev
sudo aptitude install libatlas-base-dev gfortran

安装编译 Opencv-3.4.8 + Opencv_contrib-3.4.8

  1. 所有工作准备好后,准备解压 opencv-3.4.8 和 opencv_contrib-3.4.8
cd /home/pi/tools/Opencv3.4.8/
unzip /home/pi/tools/Opencv3.4.8/opencv-3.4.8.zip
unzip /home/pi/tools/Opencv3.4.8/opencv_contrib-3.4.8.zip
  1. 进入./opencv-3.4.8/目录下,新建release文件夹
#进到源代码目录下
cd /home/pi/tools/Opencv3.4.8/opencv-3.4.8
#新建release文件夹
mkdir release
#进入release文件夹
cd release/
  1. cmake

设置cmake编译参数,安装目录默认为/usr/local,OPENCV_EXTRA_MODULES_PATH 根据自己的Opencv_contrib设定

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/tools/Opencv3.4.8/opencv_contrib-3.4.8/modules \
-D BUILD_EXAMPLES=ON ..

cmake完成后结果如下:
在这里插入图片描述
正常情况下,cmake完成之后,我们可以直接在release目录下输入命令:make -j4 进行编译工作了。但实际上这样很可能出错,出错的原因一般都是说缺少什么文件,缺少的文件主要是Cmake在配置时由于网络不好没下载下来。建议大家编译之前到release/downloads/xfeatures2d/文件夹里查看是否有我如下11个文件
在这里插入图片描述
如果没有这些文件,务必要拷贝到release/downloads/xfeatures2d/文件夹里(这11个文件在本文章开头的云盘链接里都有),不然在下一步进行编译工作时会报错

  1. 开始编译

make命令参数-j4指允许make使用最多4个线程进行编译,可以根据自己机器的情况进行更改

sudo make -j4

/home/pi/tools/Opencv3.4.8/opencv_contrib-3.4.8/modules/xfeatures2d/src
在这里插入图片描述
解决方法①:出现类似fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录问题时,将/home/pi/tools/Opencv3.4.8/opencv_contrib-3.4.8/modules/xfeatures2d/include/opencv2/xfeatures2d中的cuda.hpp复制到报错文件matchers.hpp的目录下,并修改matchers.hpp中第52行代码为# include "cuda.hpp"
解决方法②:
在Opencv的CmakeLists.txt中加入以下include语句:

INCLUDE_DIRECTORIES("/home/pi/tools/Opencv3.4.8/opencv_contrib-3.4.8/modules/xfeatures2d/include/")

然后重新cmake再进行编译

整个编译过程大概要一个半小时,需要耐心等待
在这里插入图片描述

  1. 编译完成,在release/目录下输入命令:
sudo make install

等待安装完成即可。

配置Opencv3.4.8环境

  1. 安装完成后,还需要给opencv配置一下环境,使用nano打开,输入命令如下:
sudo nano /etc/ld.so.conf.d/opencv.conf
  1. 在此文件中写入一下内容,并保存退出
/usr/local/lib
  1. 再输入命令如下:
sudo ldconfig
  1. 更改环境变量,输入命令如下:
sudo nano /etc/bash.bashrc

在此文件中的末尾写入以下内容,并保存退出

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH

至此,Opencv3.4.8已安装完成,测试如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值