当前位置:网站首页>树莓派4B安装opencv3.4.0
树莓派4B安装opencv3.4.0
2022-07-06 09:27:00 【帅帅气气的黑猫警长】
这玩意贼难安装,本人装了两天,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
边栏推荐
- MySQL授予用户指定内容的操作权限
- 7-1 understand everything (20 points)
- Research Report on surgical fluid treatment industry - market status analysis and development prospect prediction
- 渗透测试 ( 8 ) --- Burp Suite Pro 官方文档
- Information security - threat detection - Flink broadcast stream broadcaststate dual stream merging application in filtering security logs
- nodejs爬虫
- 滲透測試 ( 1 ) --- 必備 工具、導航
- New to redis
- 【练习-10】 Unread Messages(未读消息)
- [exercise -11] 4 values why sum is 0 (and 4 values of 0)
猜你喜欢
mysql导入数据库报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
Luogu P1102 A-B number pair (dichotomy, map, double pointer)
渗透测试 2 --- XSS、CSRF、文件上传、文件包含、反序列化漏洞
Penetration test (3) -- Metasploit framework (MSF)
渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
Penetration test 2 --- XSS, CSRF, file upload, file inclusion, deserialization vulnerability
7-1 懂的都懂 (20 分)
X-Forwarded-For详解、如何获取到客户端IP
Frida hook so layer, protobuf data analysis
Penetration test (4) -- detailed explanation of meterpreter command
随机推荐
Opencv learning log 19 skin grinding
CEP used by Flink
Shell Scripting
【练习-5】(Uva 839)Not so Mobile(天平)
Penetration test 2 --- XSS, CSRF, file upload, file inclusion, deserialization vulnerability
[exercise -10] unread messages
Opencv learning log 18 Canny operator
Information security - threat detection engine - common rule engine base performance comparison
Nodejs+vue online fresh flower shop sales information system express+mysql
【练习-10】 Unread Messages(未读消息)
Borg maze (bfs+ minimum spanning tree) (problem solving report)
想应聘程序员,您的简历就该这样写【精华总结】
mysql导入数据库报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
Opencv learning log 16 paperclip count
socket通讯
渗透测试 ( 8 ) --- Burp Suite Pro 官方文档
Analyse du format protobuf du rideau en temps réel et du rideau historique de la station B
洛谷P1102 A-B数对(二分,map,双指针)
[exercise-2] (UVA 712) s-trees
MySQL授予用户指定内容的操作权限