树莓派 4B 安装 QT 以及 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.youkuaiyun.com/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 <opencv2/opencv.hpp>
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.youkuaiyun.com/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.youkuaiyun.com/qq_17783559/article/details/81630644

### 安装 QtOpenCV 在 Raspberry Pi 4B #### 准备工作 为了确保顺利安装,建议先更新系统软件包并升级现有包至最新版本[^2]。 ```bash sudo apt-get update && sudo apt-get upgrade -y ``` #### 安装依赖项 对于 QtOpenCV安装来说,一些必要的开发工具和库是必需的。可以通过下面命令来安装这些依赖: ```bash sudo apt-essential cmake pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev git-core checkinstall \ qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools ``` #### 编译安装 OpenCV 获取 OpenCV 源码,并按照特定指令进行配置与编译。这里以 OpenCV 4.1.2 版本为例说明过程。 ```bash cd ~ wget https://github.com/opencv/opencv/archive/refs/tags/4.1.2.zip unzip 4.1.2.zip mv opencv-4.1.2 opencv cd ~/opencv mkdir build cd build cmake .. make -j$(nproc) sudo make install ``` 完成上述操作之后,还需要调整 Python 中使用的 OpenCV 库文件名以便于后续调用[^1]。 ```bash $ cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7/ $ sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so $ cd ~/.virtualenvs/cv/lib/python3.7/site-packages/ $ ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so ``` 验证 OpenCV 是否成功安装以及其版本号是否正确。 ```python >>> import cv2 >>> print(cv2.__version__) '4.1.1' ``` #### 配置并构建 Qt 针对 Raspberry Pi 平台上的 Qt 构建,需特别注意交叉编译环境设置及目标平台选项的选择[^3]。 ```bash ../qt-everywhere-opensource-src-5.5.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5-device-option CROSS_COMPILE=C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf- ``` 需要注意的是,在实际执行 configure 脚本前应根据实际情况修改路径参数;另外 `-prefix` 参数指定了最终安装位置,默认情况下会放置在 `/usr/local/` 下面[^4]。 最后通过 `make` 和 `make install` 来完成整个编译流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值