树莓派 4B 安装 QT 以及 OpanCV

树莓派 4B 安装 QT 以及 OpanCV

  • 写在最前
    • QT安装
    • OpenCV安装
    • 树莓派使用 OpenCV 读取自带的摄像头

写在最前

树莓派采用 4B,内存为 4G 版,如果用 3B+ 或者内存只有 1G 可能会在 OpenCV 编译的时候卡死或者失败,因为内存过小,需要增加虚拟内存。
系统采用树莓派官方系统。
以下安装过程的主要参考网址:
https://ayangyou.com/2019/01/24/raspberrypi_qt_opencv/

QT安装

首先先安装 QT,安装指令顺序如下(注意按顺序安装):
一般来说,这种方式安装的 QT 为最新版本的 QT。如果需要其他版本的 QT,建议去官网下载手动安装。

$ sudo apt-get install qt5-default
$ sudo apt-get install qtcreator
$ sudo apt-get install qtmultimedia5-dev libpulse-dev
$ sudo apt-get install libqt5multimedia5-plugins

如果出现提示说有未满足的依赖关系则可以尝试通过 aptitude 指令:

$ sudo aptitude install qtmultimedia5-dev libpulse-dev

如果提示说未安装 aptitude 的,安装一下即可:

sudo apt-get install aptitude

如果还是无法解决,建议换源尝试(包括以下构建 OpenCV 相关工具的安装失败),换源参考网址:
https://blog.csdn.net/MrYarnell/article/details/80165920
官方源不要删,可以用 # 注释备用。
建议优先使用官方源,即不更改源,为保证稳定,本文涉及到的所有的安装一般来说官方源都可以下载到的,亲测,如果没有,建议 update 一下:

$ sudo apt-get update

OpenCV安装

OpenCV 安装指令顺序如下:
首先安装构建 OpenCV 的相关工具,然后再编译 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以及相关包
$ sudo apt-get install libgtk2.0-dev
# 优化函数包
$ sudo apt-get install libatlas-base-dev gfortran

下面的几个包可能系统里已经被安装好,手动安装一下以防未安装。

$ sudo apt-get install build-essential pkg-config libavcodec-dev libavformat-dev libswscale-dev

首先要有一个 OpenCV 源码的压缩包,如果没有去官网下载(下载可能比较慢):https://opencv.org/
一般来说选版本最新的,我这里是 OpenCV 4.1.2 版本。
进入 OpenCV 压缩包所在路径,解压 OpenCV:

$ unzip opencv-4.1.2.zip

进入解压后的 opencv 文件夹

$ cd opencv

新建 build 文件夹并进入

$ mkdir build
$ cd build

设置 cmake 参数,安装目录默认各部分分别安装在 /usr/local/ 路径下的 include、bin、lib 三个文件夹下。

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

我就直接不设置路径了,默认路径即可:

$ sudo cmake -D CMAKE_BUILD_TYPE=Release ..

然后编译,这一步会等很久,树莓派发热也会特别厉害,编译期间建议拆掉上壳散热。

$ sudo make -j4

安装:

$ sudo make install

更新动态链接库:

$ sudo ldconfig

最后通过 QT 测试:
新建工程,选择 Non-Qt project 项目中的 Plain C++ Application,在 .pro 文件中直接复制以下内容:

QT += core
QT -= gui

TARGET = opencv_test
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

TEMPLATE = app

SOURCES += \
        main.cpp

INCLUDEPATH += /usr/local/include/opencv4 \
                /usr/local/include/opencv4/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_stitching.so \
        /usr/local/lib/libopencv_videoio.so \
        /usr/local/lib/libopencv_video.so \

在 main.cpp 文件中,复制以下内容:
注意路径,此程序为打开一个图片。

#include 
using namespace std;
int main()
{
    cv::Mat image = cv::imread("/home/pi/Pictures/123.bmp", cv::IMREAD_COLOR);
    cv::imshow("Lena",image);
    cv::waitKey(0);
    return 0;
}

如果编译出现错误,注意图片路径与 OpenCV 库文件路径是否引用正确。

如果编译通过,但运行出现自定义执行档的弹窗,弹窗提示:
无法找到执行档,请指定一个。
解决方法是点击菜单栏构建,然后点击重新构建项目。重新构建完之后再重新编译运行即可。
参考网址:
https://blog.csdn.net/qq_35584151/article/details/80670790

至此,程序即可正常运行。

树莓派使用 OpenCV 读取自带的摄像头

首先进入设置:

$ sudo raspi-config

选择 Interfacing Options
然后选择 Camera
选择 Yes ,即打开摄像头功能。
然后在终端输入:

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

打开摄像头配置文件
在里面添加一行:

bcm2835-v4l2

保存重启,即可通过 OpenCV 读取摄像头使用
参考网址:
https://blog.csdn.net/qq_17783559/article/details/81630644

你可能感兴趣的:(嵌入式视觉)