其他分享
首页 > 其他分享> > 树莓派4B配置opencv340库及其contribute库(杂记)

树莓派4B配置opencv340库及其contribute库(杂记)

作者:互联网

参考资料

第一篇
第二篇
第三篇
第四篇
第五篇

步骤

  1. 下载树莓派系统,带桌面;我下载的是2020-02-13-raspbian-buster.img
    链接
  2. 安装系统,树莓派系统是装在SD卡的,相当于电脑的硬盘。准备一张16GSD卡(16g够了,不要太小,装写软件,存一点代码和视频什么的就剩的不多了)。然后先用读卡器格式化SD卡,格式化工具我的是SD Card Formatter。最后再把上面的系统write到SD卡里面。
  3. 烧好系统后!先不急这拔出来。如果没有外接屏幕的话需要配置网络,因为在同一局域网下才能通过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卡,根目录下。
  1. sd卡插入树莓派,用5v3A供电。我用的是手机快充一套,充电宝也行,但要注意typec连接线要粗一点,不然老是出现低电压worring。

  2. 用软件Advanced IP Scanner查找你树莓派的网络地址。如果笔记本和树莓派连接的都是手机热点,有的手机还能直接看ip地址,就用不到上面那个软件。

  3. 找到之后先用putty登入树莓派。默认用户名pi密码raspberry。输入sudo raspi-config配置树莓派。因为配置了ssh文件,所以就已经开启了ssh服务。其他配置上面五篇文献应该有讲到。

  4. 通过vnc登入树莓派界面。用户名如下192.168.0.1:0就是树莓派ip:0,为什么:0忘了。if出现无法打开,则再putty设置屏幕大小advance…–resulotion–16:9
    顺便完成10的部分

  5. 换软件源: 换完之后更新
    第一步, 备份文件

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
  1. 输入法:https://blog.csdn.net/wei190328/article/details/106969316/
sudo apt-get install scim-pinyin -y
sudo apt-get install ttf-wqy-zenhei
reboot
sudo scim
  1. 树莓派内部设置
    https://github.com/TommyZihao/Zihao-Blog/blob/master/02%E4%B8%80%E5%8A%B3%E6%B0%B8%E9%80%B8%E9%85%8D%E7%BD%AE%E6%A0%91%E8%8E%93%E6%B4%BE.md

  2. 安装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

  1. 安装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随便下的,就是下面几个文件
    cd /home/pi/opencv340
    unzip opencv-3.4.0.zip
    unzip opencv_contrib-3.4.0.zip
    unzip opencv3_cmake_files.zip
    //创建编译文件夹
cd /home/pi/opencv340/opencv-3.4.0
mkdir build
cd build

//配置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 ..

//make编译,时间蛮长我的用了一个多小时,还是多线程编译的。就是sudo make -j4 。那个 或着 ,差不多就是多了个产生编译日志log。

cd ..
cp -r build build_bak
cd build
sudo make -j4          

或者最后一行用sudo make -j4 2>&1 | tee make.log

  1. 这个显示ok,然后开始编译,
    以下为编译时出现的错误,看上面某个文献解决的.
    修改好直接重新编译
    vim 出错的文件进行修改,修改好sudo make -j4
    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"
    # 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"
    #include "boostdesc_bgm.i"
//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

#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”

#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

/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 *)

13.1. 安装:

sudo make install

13.2. opencv配置
https://blog.csdn.net/zqxdsy/article/details/102673226

13.3. GCC编译出错,没加环境

这个 -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)

  1. 备份系统 整卡备份只要大于镜像内存的sd卡就行
    https://blog.csdn.net/sinat_16643223/article/details/108346538
  2. 杂技
    远程桌面连接也可以用远程桌面连接win+r搜索,这个需要先安装xorg,输入密码用户名.
    截图用什么来着,忘记了

标签:树莓,sudo,contribute,opencv,3.4,home,pi,opencv340
来源: https://blog.csdn.net/shengdashuai/article/details/115492155