树莓派配置Qt+OpenCV

news/2024/9/22 5:21:37 标签: qt, linux

本次教程使用的树莓派镜像:树莓派镜像带图像界面下载

Qt的安装:

在命令行依次输入以下命令安装Qt:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install qtbase5-dev qtchooser
sudo apt-get install qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator
sudo apt-get install qtdeclarative5-dev
sudo apt-get install clang

 OpenCV的安装:

 查看自己的树莓派系统版本:

uname -a

 

比如我的是armv7l

查看python3版本

python3 --version

 先在电脑下载opencv-python 和 opencv-contrib-python 库,再传输到树莓派进行编译;

opencv-python地址:https://www.piwheels.org/project/opencv-python/

cp37表示支持python3.7,armv7l指树莓派系统版本。根据自己情况需求下载。 

 opencv-contrib-python地址:piwheels - opencv-contrib-python

同理下载opencv-contrib

 将这两个源码下载完成后,传输到树莓派新建的文件夹里面。

 

 安装构建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 压缩包所在路径,解压 OpenCV:

unzip opencv-4.5.3.zip

进入解压后的 opencv 文件夹

cd opencv-4.5.3

新建 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 -j2

安装:

sudo make install

更新动态链接库:

sudo ldconfig

 开启树莓派摄像头:

进入设置:

sudo raspi-config

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

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

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

bcm2835-v4l2

 保存重启,即可通过 OpenCV 读取摄像头使用。

通过Qt测试:

新建Qt工程,在.pro文件里面加入OpenCV路径:

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 \

 

 编写好其他代码,效果如图:

 参考文章:

树莓派 4B 安装 QT 以及 OpenCV_树莓派4b安装qt-CSDN博客

基于树莓派4B的OpenCV安装与简单应用(真速通版)_树莓派opencv-CSDN博客


http://www.niftyadmin.cn/n/5669720.html

相关文章

5、论文阅读:深水下的图像增强

深水下的图像增强 前言介绍贡献UWCNN介绍网络架构残差Residuals块 Blocks网络层密集串联网络深度减少边界伪影网络损失Loss后处理前言 水下场景中,与波长相关的光吸收和散射会降低图像的可见度,导致对比度低和色偏失真。为了解决这个问题,我们提出了一种基于卷积神经网络的…

好用的工具网址

代码类: 1,json解析:JSON在线解析及格式化验证 - JSON.cn 2.传参转化编码 在线url网址编码、解码器-BeJSON.com 日常: 1.莆田医院查询:滚蛋吧!莆田系

python禁止位置传参函数

这种函数定义方式使用了 Python 3.x 中的关键字参数(keyword-only arguments)的特性,通过在参数列表中使用 * 符号作为分隔符,来明确指示该函数之后的参数必须使用关键字(即参数名)来传递,而不能…

探索《藏汉翻译通》小程序:跨平台的藏文翻译利器

亲爱的读者们,当谈及藏文与汉语之间的翻译工具时,您可能已经对安卓平台的《藏汉翻译通》应用和iOS平台的《藏语翻译通》应用有所耳闻。今天,我们想要向您推荐一款既实用又便捷的新工具——《藏汉翻译通》小程序。 这款小程序不仅能够提供精确…

ubuntu 安装minikube,并拉取k8s镜像

不要使用最新版,重要的事情说三遍,刚开始也是最求新一点的版本,但问题很多,主要是版本之间的依赖问题,不是某个依赖的版本不支持某些功能,就是依赖之间的版本不能对应上,所以就降低几个版本&…

【开源免费】基于SpringBoot+Vue.JS图书馆管理系统(JAVA毕业设计)

本文项目编号 T 044 ,文末自助获取源码 \color{red}{T044,文末自助获取源码} T044,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

操作系统:线程间通信方式(下)——信号量机制 (Semaphore) 与信号机制 (Signal)

操作系统:线程间通信方式(下)——信号量机制 (Semaphore) 与信号机制 (Signal) 在多线程编程中,线程间的通信与同步至关重要。信号量机制(Semaphore)和信号机制(Signal)是两种常见且…

【AI大语言模型】提示词工程基础及进阶

【AI大语言模型】提示词工程基础及进阶 什么是提示词(Prompt) 提示词(Prompt)是与人工智能对话时用来引导或触发生成某种输出的指令。 它相当于你在与 AI 进行互动时所提出的问题或任务说明。提示词可以是简短的指令、一个问题…