树莓派4B安装opencv3.4.0

这玩意贼难安装,本人装了两天,make的时候失败一次就要从头再来。。。。

首先说明我这是:在树莓派安装运行在Python3上的OpenCV

进入正题:

安装前提:

1、配置好树莓派的Raspbian操作系统

2.切换到国内的apt-get下载源和pip下载源,防止下载速度过慢(这里就不详细说了,请自行百度)

安装opencv

1、安装numpy

安装Python科学计算库numpy(先获取管理员权限,su)

pip3 install numpy

2、在树莓派设置中把根目录扩大到整个SD卡

命令行界面输入命令,进入树莓派配置界面。用上下键和左右键切换光标位置。

raspi-config

选择第七行:Advanced Options

选择第一项Expand Filesystem,将根目录扩展到这个SD卡。如果不进行这一步,后续命令会出现卡死。

退出设置界面,重启树莓派(reboot)。

3、安装OpenCV所需的库

八个命令,挨个运行,倒数第三条需要安装四个dev

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

下载两个压缩包到树莓派的**/home/pi/Downloads**目录下(最好下载到这个地方,后续比较方便)

首先切换到Downloads目录下,(根据自己情况而定,不一定是我下面写的这个路径)

cd /home/pi/Downloads

用wget下载

wget https://github.com/Itseez/opencv/archive/3.4.0.zip

wget https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip

若是访问GitHub有些困难,自行解决(文章末尾有链接)。

下载完成之后,解压到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 ..

执行完成之后若出现下图表示成功

6、编译(幺蛾子最多且最耗时间的一个)

首先你存储空间要够,5g以上,最好不要用ssh连接树莓派,一段时间ssh会自动退出,导致你不知道make结束了没。最好用vnc连接,也可以树莓接显示器。

cd /home/pi/Downloads/opencv-3.4.0/build
make

树莓派4b,4g的运行内存,我跑了差不多四个小时左右,而且中途出岔子贼多。我总结一下我的

1、缺少文件型错误

报错:Built target opencv_tracking [Makefile:163 : all] 错误2,意思就是缺少boostdesc_bgm.i,boostdesc_bgm_bi.i等等这些文件

就是因为下载的安装包文件不全,把缺少的文件拷贝到:home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/src/下即可

需要用的文件,我最后给个链接。

2、路径报错类型

报错:fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录

Building CXX object modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/opencv_stitching_pch_dephelp.cxx.o
In file included from /home/pi/opencv-3.4.0/build/modules/stitching/opencv_stitching_pch_dephelp.cxx:1:
/home/pi/opencv-3.4.0/modules/stitching/src/precomp.hpp:91:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录

include “opencv2/xfeatures2d/cuda.hpp”
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/build.make:63:modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/opencv_stitching_pch_dephelp.cxx.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:21443:modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/all] 错误 2
make: *** [Makefile:163:all] 错误 2

这是一个类型,会爆出各种错误,比如cuda.hpp,xfeatures2d.hpp,nonfree.hpp等等好几个文件,都报错“没有那个文件或目录”。

这就是绝对路径和相对路径的区别,系统默认给的是相对路径,我们只需要找到报错的那个文件,找到错误的那一行,把相对路径,修改成绝对路径。

例如:include “opencv2/xfeatures2d/cuda.hpp”报错,就是因为找不到/cuda.hpp,我们直接把这个cuda.hpp设置成绝对路径,找到这个/cuda.hpp文件。

如果是按照我上面的路径,一般来说,都在/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d这里

然后我们找到报错的这个文件(/home/pi/opencv-3.4.0/modules/stitching/src/precomp.hpp),修改报错的这一行

然后就把include “opencv2/xfeatures2d/cuda.hpp”改成include “/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp”,然后保存,🆗

总之这种类型解决方法一样,缺少的文件都在/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2这个里面。遇到“没有那个文件或目录”就去这个文件夹找,用pwd得到路径,然后去报错的文件中修改路径。

还有一点需要注意的是,make失败后,如果要重新make,首先要clean掉之前make的,在build目录下,执行

make clean

 然后再

make

 出现下图所示,就成功了(预估三个多小时)

100%之后且没有报错,恭喜您,马上成功!

接下来在build目录下,接着(需要管理员条件下运行,如果不是管理员身份,请先su)

make insall

这个命令需要半分钟吧,没报错就说明成功了。

7、在Python3上测试OpenCV

打开python3,命令我就不用说了吧

首先

import cv2

然后(注意是两个下划线)

cv2.__version__

出现如图效果,就说明成功了。

所需文件

opencv3.4文件以及缺少文件.zip: https://089u.com/file/30936724-479224952 访问密码:123456

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值