树莓派3B+安装Opencv和opencv_contrib指导手册

树莓派3B+安装Opencv和opencv_contrib指导手册

1.换源

将源更换成国内源,可以提升下载速度

sudo vim /etc/apt/sources.list

//注释掉原有的源,换成下面的源
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

sudo vim /etc/apt/sources.list.d/raspi.list

//注释掉原有的源,换成下面的源
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

//更新一下软件包,升级已有包
sudo apt-get update
sudo apt-get upgrade

2.软件的更新与升级

// 软件源更新
sudo apt-get update 

// 升级本地所有安装包,最新系统可以不升级,版本过高反而需要降级才能安装
sudo apt-get upgrade

// 升级树莓派固件,固件比较新或者是Ubuntu则不用执行
sudo rpi-update

3.树莓派swap扩容

树莓派3B+的默认内存很小,在编译一些源码的时候,会出现内存被耗尽,编译被中断的情况,所以需要扩容,树莓派3B+的内存是1G所以我们需要把内存扩大到1G。

cd /var

// 先关闭
sudo swapoff /var/swap

// 重新设置大小1M * 1024 = 1G
sudo dd if=/dev/zero of=swap bs=1M count=1024

// 格式化
sudo mkswap /var/swap

// 开启
sudo swapon /var/swap

// 查看当前已生效的swap
swapon -s

// 查看当前swap使用情况,此时就可以看到swap是1G了
free -m

4.安装构建OpenCV的相关工具和常用的图像工具包

// 安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config 

// 安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev 

// 安装tif格式图像工具包
sudo apt-get install libtiff5-dev 

// 安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev 

// 安装png图像工具包
sudo apt-get install libpng12-dev 

//安装视频I/O包(注意最后一个包的数字“4”后面是“L”)
sudo apt-get install ffmpeg
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

//安装gtk2.0
sudo apt-get install libgtk2.0-dev

//优化函数包
sudo apt-get install libatlas-base-dev gfortran

//如果你希望在Python中使用OpenCV,那么你还需要安装Python的开发包
sudo apt-get install python-dev python3-dev

5.下载opencv和opencv_contrib包,解压

创建openc文件夹

/** 使用wget下载OpenCV源码,觉得慢的话可以到https://github.com/opencv/opencv/releases下载OpenCV的源代码
* tar.gz格式,需要解压好,放到用户目录下
**/

// 下载OpenCV
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

// 解压OpenCV
unzip opencv-3.4.3.zip

// 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

// 解压OpenCV_contrib库:
unzip opencv_contrib-3.4.3.zip


将解压的opencv-3.4.3的文件夹放到opencv文件夹里面,再将opencv_contrib-3.4.3的解压文件夹放到opencv-3.4.3的文件夹下

打开opencv-3.4.3的解压包

// 打开源码文件夹,这里以我修改文章时最新的3.4.3为例
cd opencv-3.4.3

新建一个名为build的文件夹用来存放cmake编译时产生的临时文件

// 新建build文件夹
mkdir build

// 进入build文件夹
cd build

6.opencv和opencv_contrib包编译

** CMAKE_BUILD_TYPE是编译方式
* CMAKE_INSTALL_PREFIX是安装目录
* OPENCV_EXTRA_MODULES_PATH是加载额外模块
* OPENCV_ENABLE_NONFREE 是需要得到contrib库里面的专利许可指令,不然一些库没法使用
* INSTALL_PYTHON_EXAMPLES是安装官方python例程
* BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON \)
**/

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE 	-D CMAKE_INSTALL_PREFIX=/usr/local   -D OPENCV_ENABLE_NONFREE=ON  -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv-3.4.3/opencv_contrib-3.4.3/modules  ..

OPENCV_EXTRA_MODULES_PATH=使用自己的opencv_contrib库中的modules安装路径

开始编译

/** 编译,以管理员身份,否则容易出错
* make命令参数-j4指允许make使用最多4个线程进行编译,4个线程虽快但卡,我用的2个线程
* 所以可以根据自己机器的情况进行更改
**/

sudo make -j2

// 安装
sudo make install

// 更新动态链接库
sudo ldconfig

6.测试

#include <iosteam>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
	Mat image;
	image=imread("ali.jpg");

 namedWindow("input image");
 imshow("input image", image);
 waitKey(0);
 return 0;
}

终端输入,生成可执行文件

g++ a.cpp `pkg-config opencv --libs --cflags opencv`    //列出使用opencv库编译时所需要的选项。(头文件路径,链接库)

执行

./a.out

在这里插入图片描述
注意:在SSH中执行时,会提示
Gtk-WARNING **: cannot open display: :
这时需要用VNC来执行,或者用显示屏执行

安装过程问题解决:

1、libjasper-dev 无法安装,解决办法

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

2、找不到库文件 解决办法
例如:

/usr/local/softwork/opencv-3.4.3/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp:42:10:

fatal error: /opencv2/xfeatures2d.hpp: No such file or directory

#include "/opencv2/xfeatures2d.hpp"

^~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

根据给的路径找到xfeature2d.hpp的文件并打开,找到第42行如下:

40 #ifndef __OPENCV_XFEATURES2D_HPP__

41 #define __OPENCV_XFEATURES2D_HPP__

42#include "opencv2/xfeatures2d.hpp"

找到xfeatures2d.hpp文件路径,在打开文件中将"opencv2/xfeatures2d.hpp" 改为绝对路径

#include"/usr/local/softwork/opencv3.4.0/opencv_contrib3.4.3/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"

3、找不到 boostdesc_bgm.i 该文件 解决办法
可到网上下载boostdesc_bgm.i 文件然后放到所需的文件夹下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值