树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0

一、下载OpenCV4.1.0+opencv_contrib-4.1.0
          树莓派下载文件比较慢可以用电脑先下载文件,下载地址:
          OpenCV4.1.0下载地址:https://github.com/Itseez/opencv/archive/4.1.0.zip
          opencv_contrib-4.1.0下载地址:https://github.com/Itseez/opencv_contrib/archive/4.1.0.zip
文件我已经下载下来了,还有安装过程中容易缺少的文件也有:链接:https://pan.baidu.com/s/1Aei33G1C-CQ30DySj0hBtg
提取码:9o7t
二、复制文件
1.首先下载电脑与树莓派互传文件的软件,推荐FileZilla
在这里插入图片描述
主要在主机哪儿输入树莓派地址,树莓派用户名一般为pi,输入密码自己设定的默认为raspberry,主机端口一般为22,
然后点击快速连接就可以了。
然后将OpenCV4.1.0+opencv_contrib-4.1.0上传到树莓派home/pi文件夹下,解压成两个文件
三、文件处理
完成以上工作之后。将opencv_contrib-4.1.0文件夹改名为opencv_contrib,并放到opencv-4.1.0文件夹里。在opencv-4.1.0文件夹里建立build文件夹,命令:mkdir build 如下图所示:
在这里插入图片描述
三、扩展根分区和设置swap交换空间
A、扩展根分区
在树莓派编译OpenCV需要很大的内存,SD卡最好至少16个G(我的SD卡位32个G)。由于刚刚使用,树莓派根分区比较小,我们需要扩展空间:
a、安装raspi-config(一般树莓派里面默认已安装)

sudo apt-get install  raspi-config

运行raspi-config

sudo raspi-config

在这里插入图片描述
在这里插入图片描述
选择Expand Filesystem (也有版本为expand_rootfs), 选择并确定后
b、查看空间

df -h

文件系统 容量 已用 可用 已用% 挂载点
/dev/root 13G 11G 1.3G 90% /
devtmpfs 433M 0 433M 0% /dev
tmpfs 438M 0 438M 0% /dev/shm
tmpfs 438M 12M 426M 3% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 438M 0 438M 0% /sys/fs/cgroup
/dev/mmcblk0p6 68M 23M 46M 33% /boot
tmpfs 88M 0 88M 0% /run/user/1000
/dev/mmcblk0p5 30M 398K 28M 2% /media/pi/SETTINGS
/dev/root 编程13G了,我的SD卡是16G的
B、设置swap交换空间
我在编译OpenCV时至少花了有7个多小时,最后到99%的时候卡死了,鼠标也不能动,键盘也不动,原因是系统默认设置的swap交换空间不够。所以编译之前最好设置一下swap交换2G空间,一方面加快运算速度,另一方面防止卡死。输入命令如下:

1,命令:
cd /opt
sudo mkdir image
sudo touch swap
sudo dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
过一段时间会返回信息,这个过程有点小长,注意不是死机了,耐心等一等。返回的信息大概是:
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 242.095 s, 8.7 MB/s
 
2,再输入命令:
sudo mkswap /opt/image/swap
 
检查现有的交换空间大小,使用命令free:
free -m
 
3,启动新增加的2G的交换空间,使用命令swapon:
sudo swapon /opt/image/swap
 
确认新增加的2G交换空间已经生效,使用命令free
free -m
 
4,修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效
sudo vim /etc/fstab
 
在文件最后加入:
/opt/image/swap    /swap    swap    defaults 0 0

四、安装OpenCV的相关工具
安装cmake编译器

sudo apt-get install build-essential cmake git pkg-config

安装OpenCV的图像工具包

sudo apt-get install libjpeg8-dev 
sudo apt-get install libtiff5-dev 
sudo apt-get install libjasper-dev 
sudo apt-get install libpng12-dev 

安装视频I/O包

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

五、安装编译OpenCV4.1.0+opencv_contrib-4.1.0
为了安装方便不容易出错,建议使用cmake-gui安装,首先安装cmake-GUI:

sudo apt-get install cmake-gui

安装完成后运行cmake-gui:

cmake-gui 

在Where is the source code:选择opencv-4.1.0目录位置(我的位置为:/home/pi/opencv-4.1.0),
在Where to build the binaries:选择build位置(我的位置为:/home/pi/opencv-4.1.0/build)。如下图所示:
在这里插入图片描述
选择完毕点击Configure,配置完毕如下图所示:
在这里插入图片描述
等完了以后找到BUILD_opencv_world,后面的方框点上勾;
找到在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变;
找到OPENCV_ENABLE_NONFREE,在后面的方框点上勾(有的算法有专利,不点这个不能用,比如sift);
找到OPENCV_EXTRA_MODULES_PATH,选择opencv_contrib文件夹中的modules文件夹,注意是modules文件夹(我的路径是/home/pi/opencv-4.1.0/opencv_contrib/modules)。
完成以上工作再点击Configure,耐心等一等,如果上面还有红色的再点击Configure,之到没有红色为止。Configure完成之后点击Generate,等一等即可。正常情况下,等Generate完成之后,我们可以直接在build目录下输入命令:make 进行编译工作了。但实际上这样很可能出错,我在编译了5个多小时后报错了,出错的原因一般都是说缺少什么文件,缺少的文件主要是Cmake在配置时由于网络不好没下载下来。我在位于build下的CmakeDownloadLog.txt可以查看到有哪些文件下载失败。经常下载失败的文件我上传到了我的百度云,链接还是上面的百度云链接。建议大家编译之前到build目录下的downloads/xfeatures2d文件夹里查看是否有我如下11个文件。
在这里插入图片描述
如果没有务必拷贝到build目录下的downloads/xfeatures2d文件夹里。我在安装时还有一个文件face_landmark_model.dat没有下载成功,将该文件放到build目录下的/share/opencv4/testdata/cv/face目录下,如果没有目录可自行建立。
检查拷贝完毕,最好再次Configure一下,直到没有上面没有红色为止,然后再点击Generate。如果不放心可以再次检查日志。
最后在build目录下输入命令:

sudo make

编译时间很长,需要耐心等待,估计要编译7个小时左右
编译不出错完成之后,在build目录下输入命令:

sudo make install

等待安装完成。
六、配置OpenCV4.1.0环境
安装完需要配置环境,树莓派可以使用vim,输入命令如下:

  sudo vim /etc/ld.so.conf.d/opencv.conf

打开以后文件是空的什么也没有,添加下面这一句:

  /usr/local/lib

保存后退出,再输入命令:

  sudo ldconfig

然后更改环境变量,输入命令:

  sudo gedit /etc/bash.bashrc

打开之后,在文件最后面输入以下内容:

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

保存退出,opencv基本上就安装完成了。
**整理不易,点个赞呗 **

原创文章 81 获赞 48 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_15181569/article/details/95449111