树莓派安装opencv详细过程及遇到常见问题解析

树莓派安装opencv详细过程及遇到常见问题解析

一、beginning
今天下午有时间,就总结一下树莓派opencv的安装过程吧,想当初安装时花费了不少力气,在网上找了好多教程,但好多都存在各种不同的问题,解决起来非常麻烦,有时甚至会南辕北辙。经过不断地填坑,最终把问题都给解决了,成功的安装上了opencv(当时是很开心),好了废话不多说,赶快把安装过程给总结一下。

二、在树莓派上安装运行在Python3上的Opencv
1、安装numpy
打开终端,输入以下命令,安装Python科学计算库numpy

sudo pip3 install numpy

2、在树莓派设置中把根目录扩大到整个SD卡
打开终端输入命令,进入树莓派配置界面。用上下键和左右键切换光标位置

sudo raspi-config

树莓派配置界面
在这里插入图片描述
选择第七行的:Advanced Options

在这里插入图片描述
在这里插入图片描述
选择Expand Filesystem,将根目录扩展到这个SD卡,充分利用SD卡的储存空间。如果不进行这个操作后面可能会卡死。
之后退出设置界面,重启树莓派。

sudo reboot

3、安装OpenCV所用到的库
运行下面八条指令,即可成功安装所用到的库。

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

4、下载OpenCV
注意注意,这个地方是一个重要的点,初学者刚开始都是想着用网上查到的指令直接下载对应的OpenCV,而且网上大部分都是这种方法,但是我亲测这种方式非常不可靠,我下了N多次都是没有下够正确的大小(一般),如图所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这些都是我用指令下载的OpenCV压缩包,没有一个是可以用的,所以在这里我也不放指令的下载方式了,这种方式可能因为代码源的问题,传输速度非常慢而且极不稳定。另外我也尝试过在官网上下载,但下在途中总会出现下载错误,无法继续下载:

我觉得最好用的是通过百度网盘进行下载:
以下是我的百度网盘下载地址(3.4.0版本的)如果需要其他版本,可以自己在网上找找,很多资源的。
1、OpenCV 3.4.0
链接:https://pan.baidu.com/s/1wDaVt86GPhKh6GgmNP-1DQ
提取码:e47c

2、opencv_contrib-3.4.0
链接:https://pan.baidu.com/s/1SwlCXBL8PUTw5qfYRMQiHA
提取码:8mbz
下载完成后我是有U盘给拷贝到树莓派里,这里要注意一定要把压缩包放在/home/pi/Downloads目录下(一定不能错)

解压这两个压缩包

cd /home/pi/Downloads
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip

这其中一个大坑一定要注意,我填坑至少花费了两天时间。大家可以吸取教训。

5、设置编译参数
设置编译参数

cd /home/pi/Downloads/opencv-3.4.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=/home/pi/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..

根据下图判断你是否配置成功了CMAKE。如果失败,可能是因为两个压缩包的路径没有严格按照上文的要求。如果成功,就可以开始最重要的编译了。
该图取自(跟着自豪学树莓派中)
在这里插入图片描述
这也算是一个小坑吧,我第一次设置是没有成功的,我又严格安装路径给配置了一遍最后才成功。这个给地方只要是按照上文所说的做,一般是没有问题的。

6、编译
1、//编译

sudo make 

如果说前面的下载OpenCV是一个大坑的话,那么这个编译过程绝对算得上是大大大坑(此处省略两万字。。。)我记得当时卡在这个地方好多天,这个编译过程十分之慢,总是编译到凌晨还没完,重要的是每次改完都不知道最后编译结果是否能够完成,话不多说上图,看看我都卡在了哪里(/(ㄒoㄒ)/~~)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译过程中,说实在话卡在哪里都是正常的,我一直有如图所示的两个报错,在网上搜索了好久,受到误导,一直以为我下载的CV2。cpp代码有问题在哪里改代码,但是越改越乱,说是字符数组有问题,要加一个char来进行强制转换,最后确实用到了,下面就是我在网上找到的具体卡在各个地方的对应解决办法。

该部分转载自忆逍遥大佬的博客,大家可以区看看写的非常好,棒!
1.在编译到75%左右时可能会出现openc_contrib 提示缺少boostdesc_bgm.i文件而出错
这个是由于官方所给的那两个包不全,(没有此错误的可以忽略)
解决方法如下:
可以在我的百度云盘里下载然后将所有带i结尾的文件全部都拷贝到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可
树莓派安装opencv时丢失的文件:
链接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
提取码:mbsj

然后继续上面的编译操作即可

2.在编译到94%左右时可能会出现fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录的错误标志 (没有此错误的可以忽略)
这个是由于之前在树莓派的python2环境下安装了opencv所致
解决方法如下:
将/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到
/home/pi/Downloads/opencv-3.4.0/modules/stitching/include/opencv2目录下即可解决,

3.对于树莓派4B,在编译到99%左右时可能会出现
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:63:modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:21769:modules/python3/CMakeFiles/opencv_python3.dir/all] 错误 2
make: *** [Makefile:163:all] 错误 2
的错误标志(没有此错误的可以忽略)
这个可能是由于系统版本不同和树莓派版本的不兼容所致
解决方法如下:
首先找到/home/pi/Downloads/opencv-3.4.0/modules/python/src2 中的cv2.cpp文件,
然后在第885行把char* 改成 const char* 即可解决,最后继续上面的编译操作即可。

编译成功即可安装,胜利!
2、//安装

sudo make install 

3、//更新动态连接库

7、对了最后如果不放心可以测试一下
测试:

python3
import cv2
cv2.__version__

如果出现如图结果,这说明OpenCV3.4.0安装成功,胜利!

在这里插入图片描述
当然在安装过程中还遇到了一些其他的小问题,不过是一些个性的问题,并且时间长了,没有记录特别的清楚,就不在这里说了,以后遇到了在记录吧。好了好了,不说了,今天就到这里吧。

猜你喜欢

转载自blog.csdn.net/qq_45252077/article/details/107638493
今日推荐