一、参考资料
二、系统配置 以及 所需软件
系统配置
树莓派4B:
RAM: 2G
SD卡: 32G【装了opencv等其他杂七杂八的16g可能有点不够】
系统: Buster【2020-02-13-raspbian-buster.img】
Ubuntu18.04
所需要更改
的就是配置路径,我ubuntu的用户名
是sxw,所以在下面配置的路径
中把pi换成sxw
即可
唯一错误:distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse
所需软件
SD Card Formatter
Win32DiskImager
Advanced IP Scanner
VNC
PUTTY
三、树莓派系统安装和基本配置
1.系统下载
下载树莓派系统,带桌面;我下载的是2020-02-13-raspbian-buster.img
链接
2.安装系统
将树莓派系统是装在SD卡的,相当于电脑的硬盘。
准备一张16GSD卡(16g够了,不要太小,装写软件,存一点代码和视频什么的就剩的不多了)。
先用读卡器格式化SD卡,格式化工具我的是SD Card Formatter
。再把上面的系统通过Win32DiskImager
write到SD卡里面。
3.配置wifi和ssh[以后要是用putty和vnc]
烧好系统后!先不要拔出来
。如果没有外接屏幕的话需要配置网络,因为在同一局域网下才能通过vnc登入。当然有显示屏的可以不做这部,但我还是建议做。
配置wifi网络:先创建一个文件wpa_supplicant.conf
,内容 网络名是当前连接的wifi名字—最好加入手机热点
`ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="wifi名字"
psk="密码"
}
network={
ssid="手机热点名"
psk="密码名"
}
)
再创建一个名为ssh的无后缀文件
,将两个文件都粘贴到sd卡根目录下。
4.开机和电源
sd卡插入树莓派,用5v3A
供电。
我用的是手机快充一套
,充电宝也行,但要注意typeC
连接线要粗
一点,不然老是出现低电压worring
。
5.查找树莓派的网络ip
用软件Advanced IP Scanner
查找你树莓派的网络地址。如果笔记本和树莓派连接的都是手机热点
,有的手机还能直接看ip地址,就用不到上面那个软件。
6.putty登入(无界面)
用putty
登入树莓派。默认用户名pi密码raspberry
。输入sudo raspi-config
配置树莓派。因为配置了ssh文件,所以就已经开启了ssh服务。其他配置上面五篇文献应该有讲到。
7.VNC登入(有界面)
通过vnc
登入树莓派界面。用户名如下192.168.0.1:0
就这个就是树莓派ip。后面要加个“:0”
,为什么加?忘了。if出现无法打开,则再putty设置屏幕大小advance…–resulotion–16:9
顺便完成10的部分
8.换软件源: 换完之后更新
第一步, 备份文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
第二步,编辑系统源文件sources.list。
sudo nano /etc/apt/sources.list
第三步,将初始的源使用#注释掉
,添加如下两行清华的镜像源。
注意
:这里咱们用的树莓派系统是Raspbian-buster系统,所以在写系统源链接时要注意是buster
,网上很多教程都是之前stretch版本,容易出错!
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
第四步, 编辑系统更新源raspi.list
sudo nano /etc/apt/sources.list.d/raspi.list
第五步, 将初始的源使用#注释掉,添加如下两行清华的镜像源。
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
第六步, 可不执行: sudo apt-get update -y
sudo apt-get upgrade -y
9. 输入法安装
sudo apt-get install scim-pinyin -y
sudo apt-get install ttf-wqy-zenhei
reboot
sudo scim
10. 树莓派内部设置
四、树莓派安装openc3.4.0
1. 安装opencv依赖
-y是吧y作为一个参数一般是是否升级y就是yes
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
2. 安装opencv
https://blog.csdn.net/zqxdsy/article/details/102673226
https://blog.csdn.net/qq_41081677/article/details/88772217
https://blog.csdn.net/qq_41081677/article/details/88772217
https://www.jianshu.com/p/56929416b4a1
照着这几篇来的,包也是这边下的,缺少的文件csdn随便下的,就是下面几个文件
下这里就行了,我给整合了一下
0.下载opencv-3.4.0相关文件并解压到自创文件夹opencv340
makdir /home/pi/opencv340
cd /home/pi/opencv340
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip
unzip opencv3_cmake_files.zip
1.创建编译文件夹
cd /home/pi/opencv340/opencv-3.4.0
mkdir build
cd build
2.配置cmake环境
/home/pi/opencv340/opencv_contrib-3.4.0/modules
我的opencv库的路径,下面时装一些c,c++的demo,我没装py的,少加点demo编译的快点。
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv340/opencv_contrib-3.4.0/modules \-D WITH_LIBV4L=ON \-D INSTALL_C_EXAMPLES=ON \-D INSTALL_CXX_EXAMPLES=ON \-D BUILD_EXAMPLES=ON ..
3.make编译
时间蛮长我的用了一个多小时,还是多线程编译的。就是sudo make -j4
。
这里我备份了下build
文件夹,以防万一。
cd ..
cp -r build build_bak
cd build
sudo make -j4
或者最后一行用sudo make -j4 2>&1 | tee make.log
替代,差不多就是多了个产生编译日志log
------推荐。
4.make时出现的错误
以下为编译时出现的错误,看上面某个文献解决的.
修改好直接重新编译
格式:vim 出错的文件
进行修改,修改好sudo make -j4
。
错误1 include "opencv2/xfeatures2d/cuda.hpp"
vim /home/pi/opencv340/opencv-3.4.0/modules/stitching/include/opencv2/stitching/detail/matchers.hpp
52行改成
#include"/home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
错误2 # include "opencv2/xfeatures2d/cuda.hpp"
vim /home/pi/opencv340/opencv-3.4.0/modules/stitching/src/precomp.hpp
92h行改成
#include"/home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
错误3#include "boostdesc_bgm.i"
opencv340文件夹是我创建的存放opencv库和额外库的文件夹
//opencv340文件夹是我创建的存放opencv库和额外库的文件夹
cd /home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d
sudo chmod 777 src
sudo cp -i /home/pi/opencv340/opencv3_cmake_files/*.i /home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/src/
cd /home/pi/opencv340/opencv-3.4.0/build
sudo make -j4
错误4#include "opencv2/xfeatures2d.hpp"
vim /home/pi/opencv340/opencv-3.4.0/modules/stitching/src/matchers.cpp
52行改成
#include "/home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
错误5#include "opencv2/xfeatures2d/nonfree.hpp"
vim /home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp
43行改成
#include "/home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp"
或者移动文件夹xfeatures2d -----上面那个我试过没成功
,我是用这种方法解决的
sudo cp /home/pi/opencv340/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d /home/pi/opencv340/opencv-3.4.0/build/opencv2
错误6/home/pi/opencv340/opencv-3.4.0/modules/python/src2/cv2.cpp:885:34: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
编译时发生这个错误之后,会编译很多东西有很多warning(不管他),会把这个error刷掉,我是在log日志找
了好久才找到的
vim /home/pi/opencv340/opencv-3.4.0/modules/python/src2/cv2.cpp
885行加 (char *)
即char* str = (char *)PyString_AsString(obj);
5.安装
sudo make install
6.环境设置:看他的 6.其他配置
7.GCC编译opencv的demo出错,是没加环境
这个 -lopencv_aruco
因为用到了aruco库,不加这个环境就会出错
g++ create_board_charuco.cpp -o create_board_charuco -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lopencv_aruco
./test
(如果想要对程序进行调试的话 应在g++后面加上个-g)