树莓派4B/Ubuntu配置opencv340库及其contribute库

一、参考资料

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

二、系统配置 以及 所需软件

系统配置
树莓派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。再把上面的系统通过Win32DiskImagerwrite到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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值