安装好树莓派的镜像后,请先更换树莓派3b+的源,具体教程请点击这里

    1、安装QT

    树莓派安装QT非常简单,只需要两句话,打开终端,输入以下命令

sudo apt-get install qt5-default
sudo apt-get install qtcreator

    一定要确保第一个安装成功了再输入第二个命令,如果安装第一个时提示需要xx依赖于xx,那么就把第一个命令改为

sudo aptitude install qt5-default

    然后再输入上面的第二个命令即可

    安装好之后,在左上角的菜单栏的程序里,就可以打开QT了,打开之后先别着急新建工程,打开Tools下Options,打开左边的Build & Run,然后在Complers一栏,ADD下选择GCC - C++,然后把Compiler path 选择为如图的路径即可,最后在Build & Run中的Kits,添加C++编译器为刚刚新建的G即可。之后新建工程,然后编译运行看看是否有错。

    树莓派3B+安装QT及配置Opencv过程-杨幽科技

     2、树莓派安装OpenCv3.4.1

首先安装构建OpenCV的相关工具,以下输入每行代码后按回车:

// 安装build-essential、cmake、git和pkg-config

sudo apt-get install build-essential cmake git pkg-config

  之后安装常用图像工具包:

// 安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev 
// 安装tif格式图像工具包
sudo apt-get install libtiff5-dev 
// 安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev 
// 安装png图像工具包
sudo apt-get install libpng12-dev

  再安装视频I/O包:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

  下面安装gtk2.0(此处如果不换源的话几乎100%失败,所以安装好Ubuntu后马上更换源):

sudo apt-get install libgtk2.0-dev

  然后是优化函数包

sudo apt-get install libatlas-base-dev gfortran

  到此为止,需要安装的依赖项全部完成了,接下来开始安装Opencv,我们采用源码编译的方式安装:

#整个下载的过程相对漫长,一般在半小时左右
#下载OpenCV
wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip  

# 解压OpenCV
unzip opencv-3.4.1.zip

  前面已经把源代码解压了,所以现在要切换到源码的文件夹:

cd opencv-3.4.1

  新建一个名为build的文件夹用来存放cmake编译时产生的临时文件:

// 新建build文件夹
mkdir build
// 进入builf文件夹
cd build

  设置cmake编译参数,安装目录默认为/usr/local,在终端输入:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

   此过程中会下载部分文件,由于是外网,所以往往耗费较长时间,预计在十五分钟左右,请耐心等待

   cmake没问题的话,就可以继续下面的步骤,正式编译,继续输入:

// 编译,以管理员身份,否则容易出错,-j4用来加快编译速度
sudo make -j4
// 安装
sudo make install
// 更新动态链接库
sudo ldconfig

   到此OpenCv的安装完成,现在我们结合QT做测试.

   打开QtCreator,点击File,选择New File or Project,选择None-Qt Project,选择Plain C++ Project,点击choose ,然后基本都选默认的就行

树莓派3B+安装QT及配置Opencv过程-杨幽科技


  项目建立完成后在左栏就会看到一个*.pro文件,修改.pro文件中的内容,如下(直接复制即可):

QT += core
QT -= gui

TARGET = opencv_test
CONFIG += console
CONFIG -= app_bundle

INCLUDEPATH += /usr/local/include \
                /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_calib3d.so //usr/local/lib/libopencv_core.so //usr/local/lib/libopencv_features2d.so //usr/local/lib/libopencv_flann.so //usr/local/lib/libopencv_highgui.so //usr/local/lib/libopencv_imgcodecs.so //usr/local/lib/libopencv_imgproc.so //usr/local/lib/libopencv_ml.so //usr/local/lib/libopencv_objdetect.so //usr/local/lib/libopencv_photo.so //usr/local/lib/libopencv_shape.so //usr/local/lib/libopencv_stitching.so //usr/local/lib/libopencv_superres.so //usr/local/lib/libopencv_videoio.so //usr/local/lib/libopencv_video.so //usr/local/lib/libopencv_videostab.so


TEMPLATE = app

SOURCES += main.cpp

  在左栏就会看到一个main.cpp文件,修改main.cpp文件中的内容,如下:

#include <opencv2/opencv.hpp>
int main()
{
    cv::Mat image = cv::imread("/home/yangyou/picture/lena.jpeg", cv::IMREAD_COLOR);
    cv::imshow("Lena",image);
    cv::waitKey(0);
    return 0;
}

  不出意外的话就能看到显示的图片了,注意上面的图片路径改为自己随便下载的一张图片

树莓派3B+安装QT及配置Opencv过程-杨幽科技

    3、树莓派使用Opencv调用官方摄像头

   首先先确保你的摄像头在树莓派终端是能打开的,请点击这里参考

    在用opencv调用前,请先完成以下操作

sudo nano /etc/modules-load.d/rpi-camera.conf

    之后在最后一行上加上bcm2835-v4l2,这样就可以在opencv中调用官方的摄像头了,测试代码如下:

#include <opencv2/opencv.hpp>  
using namespace cv;  

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-------------------------------------------------------------------------------------------------
int main( )  
{  
	//【1】从摄像头读入视频
	VideoCapture capture(0);

	//【2】循环显示每一帧
	while(1)  
	{  
		Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
		capture>>frame;  //读取当前帧
		imshow("读取视频",frame);  //显示当前帧
		waitKey(30);  //延时30ms
	}  
	return 0;     
}

    4、树莓派安装wiring pi

    使用wiring pi,我们可以方便的驱动各种树莓派的各种IO口,下面是wiring pi的具体安装步骤(默认路径 即可)

//下载wiringpi源码
git clone git://git.drogon.net/wiringPi

//安装
cd wiringPi
./build

    安装好之后进行测试,在终端输入

gpio -v

    不出意外会显示gpio的版本号等信息

    5、树莓派3B+ 调用串口

    对于无人机的图像任务,树莓派和无人机一般通过串口传输数据,在使用串口之前,我们需要先恢复硬件串口。

    首先需要下载pi3-miniuart-bt-overlay解压出pi3-miniuart-bt-overlay.dtb文件,然后把该文件放到/boot/overlays/目录下

    打开终端,输入以下指令

sudo nano /boot/config.txt

    在打开的文件中,在最末尾加上以下两句话

dtoverlay=pi3-miniuart-bt-overlay
force_turbo=1

    之后编辑以下文件

sudo nano /boot/cmdline.txt

    在打开的文件中参照以下内容修改

dwc_otg.lpm_enable=0 console=serial1,115200  console=tty1 root=/dev/mmcblk0p2  kgdboc=serial1,115200 rootfstype=ext4 elevator=deadline fsck.repair=yes  rootwait

    保存退出即可。

    下面是关闭板载蓝牙的方法

sudo nano /lib/systemd/system/hciuart.service

    将 “ttyAMA0”修改为“ttyS0”

    保存退出,并更新

sudo apt-get update
sudo apt-get upgrade
sudo reboot