当前位置:网站首页>树莓派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
边栏推荐
- Penetration test (7) -- vulnerability scanning tool Nessus
- Interesting drink
- 【练习-6】(PTA)分而治之
- Opencv learning log 32 edge extraction
- frida hook so层、protobuf 数据解析
- [teacher Gao UML software modeling foundation] collection of exercises and answers for level 20 cloud class
- [analysis of teacher Gao's software needs] collection of exercises and answers for level 20 cloud class
- Optimization method of path problem before dynamic planning
- China's earthwork equipment market trend report, technical dynamic innovation and market forecast
- China potato slicer market trend report, technical dynamic innovation and market forecast
猜你喜欢
1010 things that college students majoring in it must do before graduation
Web based photo digital printing website
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
Differential (one-dimensional, two-dimensional, three-dimensional) Blue Bridge Cup three body attack
Vs2019 initial use
[teacher Gao UML software modeling foundation] collection of exercises and answers for level 20 cloud class
Record of force deduction and question brushing
[exercise-4] (UVA 11988) broken keyboard = = (linked list)
D - function (HDU - 6546) girls' competition
渗透测试 ( 3 ) --- Metasploit Framework ( MSF )
随机推荐
China exterior wall cladding (EWC) market trend report, technical dynamic innovation and market forecast
想应聘程序员,您的简历就该这样写【精华总结】
Differential (one-dimensional, two-dimensional, three-dimensional) Blue Bridge Cup three body attack
C语言必背代码大全
Find 3-friendly Integers
socket通讯
HDU - 6024 Building Shops(女生赛)
E. Breaking the Wall
【练习-5】(Uva 839)Not so Mobile(天平)
China's earthwork tire market trend report, technical dynamic innovation and market forecast
JS call camera
【练习-2】(Uva 712) S-Trees (S树)
Opencv learning log 16 paperclip count
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
b站 实时弹幕和历史弹幕 Protobuf 格式解析
Hdu-6025-prime sequence (girls' competition)
Shell脚本编程
Penetration test (1) -- necessary tools, navigation
nodejs爬虫
信息安全-威胁检测-NAT日志接入威胁检测平台详细设计