ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面

news2024/11/17 13:46:19

1. 简介

  • 场景:在RK3588上做qt开发工作

  • RK3588安装Qt+opencv+采集摄像头画面

2. 环境介绍

  • 这里使用了OpenCV所带的库函数捕获摄像头的视频图像。

  • 硬件环境:
    ArmSoM-RK3588开发板、(MIPI-DSI)摄像头

  • 软件版本:
    OS:ArmSoM-W3 Debian11
    QT:QT5.15.2(Qt Creator:4.11.0)
    OpenCV:3.4.14

在这里插入图片描述

3. 在RK3588上安装QT

  • RK3588开发板联网,确认好是否能访问网络

  • sudu su切换到root用户

  • 安装交叉编译

    sudo su
    
    sudo apt-get update
    
    sudo apt-get upgrade
    
    sudo apt-get install build-essential
    
  • 使用如下步骤安装Qt

    sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
    sudo apt-get install qtcreator
    sudo apt-get install qt5*
    
  • 安装完成后在应用程序中搜索Qt会有Qt的相关程序。

  • 执行命令:qmake -query 查看RK3588上安装的QT版本:QT5.15.2

    qmake -query
    

4. 在RK3588上安装opencv

4.1 安装依赖

root@iTOP-RK3588:/home/topeet/Downloads $sudo apt-get install cmake
root@iTOP-RK3588:/home/topeet/Downloads $sudo apt-get install gcc g++
root@iTOP-RK3588:/home/topeet/Downloads $sudo apt-get install python3-dev python3-numpy
root@iTOP-RK3588:/home/topeet/Downloads $sudo apt-get install build-essential
root@iTOP-RK3588:/home/topeet/Downloads $sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

4.2 下载OpenCV

  • 到 https://codeload.github.com/opencv/opencv/zip/refs/tags/3.4.14下载OpenCV。
  • 解压opencv-3.4.14.zip压缩包会生成opencv-3.4.14文件夹。

4.3 编译安装OpenCV

  • 进入opencv-3.4.14文件夹,在该目录下新建一个build文件夹;执行如下命令:

    cd opencv-3.4.14
    mkdir build
    cd build 
    cmake ../
    make		#执行make开始编译,这个时间比较长,耐心等待。 
    sudo make install
    

4.4 配置动态链接库

  • 编辑/etc/ld.so.conf,文末加入“/usr/local/lib”,执行sudo /sbin/ldconfig -v生效。
    sudo /sbin/ldconfig -v
    

5. QT开发

5.1 创建qt项目

  • 进入qt创建一个新Qt项目,创建完后打开.pro文件,加入opencv库的路径。

    INCLUDEPATH +=/usr/local/include/ \
                  /usr/local/include/opencv/ \
                  /usr/local/include/opencv2
    LIBS +=/usr/local/lib/lib*
    
  • 可以通过v4l2-ctl --list-devices来获取摄像头的节点。

    root@linaro-alip:~# v4l2-ctl --list-devices
    rk_hdmirx (fdee0000.hdmirx-controller):
        /dev/video20
    
    
    rkisp-statistics (platform: rkisp):
        /dev/video18
        /dev/video19
    
    
    rkcif-mipi-lvds2 (platform:rkcif):
        /dev/media0
    
    
    rkisp_mainpath (platform:rkisp0-vir0):
        /dev/video11
        /dev/video12
        /dev/video13
        /dev/video14
        /dev/video15
        /dev/video16
        /dev/video17
        /dev/media1
    
    罗技高清网络摄像机 C93 (usb-fc880000.usb-1):
        /dev/video21
        /dev/video22
        /dev/media2
    
  • 而后编写Qt源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

angular框架——node_modules引入ng-zorro-antd问题

发生错误 在安装npm包(ng-zorro-antd)的时候,报错如下 原因 项目依赖的ng-zorro-antd版本号和引用包的17.0.2版本号不一致,项目使用的16.13.1版本号太高了,无法解析依赖树中低版本。 解决方案 : 命令修…

pointpillars的demo过程记录

1、进入pp conda activate pp 2、cd到/home/fyy/OpenPCDet-master/tools打开终端 python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt /home/fyy/OpenPCDet-master/pointpillar_7728\ \(1\).pth --data 000009.bin 直接就可以demo显示了

数据库同步时,通过存储过程找出时间内发生变化的视图和物化视图

1. 应用场景 在软件开发或数据库运维过程,每一次数据库同步都是运维人员的痛苦的过程。 如果每次都是无脑全量更新,则工作量较大如果每次都是增量更新,则需要知道哪些视图谁在什么时候修改了,增加了什么信息(因为往往…

(学习笔记-内存管理)内存满了会发生什么?

内存分配过程 应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。 当应用程序读写了这块虚拟内存,CPU就会去访问这个虚拟内存,这时会发现这个虚拟内存没有映射到物理内存,CPU…

【WiFi】国产WiFi芯片

目录 1.概述 2.WiFi芯片的市场格局 3.中国的WiFi芯片公司 3.1.华为海思 3.2.乐鑫科技 3.3.博通集成 3.4.紫光展锐 3.5.康希通信 3.6.南方硅谷 4.国产WiFi芯片竞争格局 4.1.内卷WiFi 4 4.2.缺席WiFi 5 4.3.发力WiFi 6 4.4.逐鹿WiFi 7 5.不得不提的WiFi FEM 1.概述…

视频创作者福音,蝰蛇峡谷NUC12SNKI7视频剪辑测评

英特尔NUC绝对是PC市场里最为特殊的产品,相比众多OEM设计制造的台式机而言,英特尔NUC主打小体积、高度集成化、强扩展性以及尽可能优异的性能表现。尤其是在主打游戏体验的NUC产品出现之后,更是将极致体验演绎到了极致。 在搭载独显的幻影峡谷…

Python爬虫教程篇+图形化整理数据(数学建模可用)

一、首先我们先看要求 1.写一个爬虫程序 2、爬取目标网站数据,关键项不能少于5项。 3、存储数据到数据库,可以进行增删改查操作。 4、扩展:将库中数据进行可视化展示。 二、操作步骤: 首先我们根据要求找到一个适合自己的网…

gitlab CI/CD 安装 gitlab runner

一、为什么需要安装gitlab runner ? 极狐GitLab Runner 极狐GitLab Runner 是在流水线中运行作业的应用,与极狐GitLab CI/CD 配合运作。 说白了就是你部署的一个agent。 二、如何安装? 1.介绍通过helm部署github runner 2.helm添加仓库 h…

k8s kubeedge安装metrics-server监控节点cpu内存使用情况

k8s kubeedge安装metrics-server监控节点cpu内存使用情况 官方安装地址: https://kubeedge.io/en/docs/advanced/metrics/ k8s的master节点上安装metrics-server #在k8s的master节点上执行#创建目录 mkdir metrics-server #下载deploy文件 wget https://github.com/kubernet…

ansible安装及rhel8仓库配置

目录 一、本地仓库 问题: 解决: 1.创建一个仓库: 内容: 2.挂载: 挂载: 测试: 3.或者直接使用阿里云的源 二.配置ansible仓库 1.下载: 2.检查 一、本地仓库 问题: 当…

史上最细,接口自动化测试框架-Pytest+Allure+Excel整理(代码)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Allure框架 Allu…

第一百二十天学习记录::计算机硬件技术基础:存储器及存储管理

分级存储器系统 存储器从内到外分为四级:内部寄存器、高速缓冲存储器、内存储器和外存储器。它们在存取速度上逐级递减,在存储容量上逐级递增。 内部寄存器 内部寄存器是计算机处理器内部的一种高速缓存,是用来存储临时数据和指令等信息的…

python与深度学习(十四):CNN和IKUN模型二

目录 1. 说明2. IKUN模型的CNN模型测试2.1 导入相关库2.2 加载模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章猫狗大战训练的模型进行测试。…

opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内…

DP-GAN剩余代码

在前面计算完损失后,该进行更新: 1:netEMA是模型的生成器: 遍历生成器的state_dict,将每一个键对应的值乘以EMA_decay。 接着根据当前迭代步数计算num_upd,每1000,2500,10000代倍数就执行一次。 当num…

MyBatis查询数据库1(概念+创建项目+基础交互)

目录 1.MyBatis是什么? 2.为什么学习MyBatis? 3. 怎么学 MyBatis 4.第⼀个MyBatis查询 4.1 添加MyBatis框架支持 4.1.1老项目添加MyBatis 4.1.2 新项目添加MyBatis 4.2 配置连接字符串和MyBatis 4.2.1 配置连接字符串 4.2.2 配置 MyBatis 中的…

PHM的设备故障模型如何构建?

预测性维护与健康管理(Prognostics Health Management,PHM)是现代工业中的一个关键概念,它旨在通过使用数据和先进的分析技术,实现设备故障的早期预测和预防,从而最大限度地提高设备的可用性和可靠性。而在…

DAY1,C高级(命令,Linux的文件系统,软、硬链接文件)

1.今日思维导图; 2.创建链接文件; 文件系统中的每个文件都与唯一的 inode 相关联,inode 存储了文件的元数据和数据块的地址,文件名与 inode 之间的链接关系称为硬链接或软链接。 硬链接文件的创建: ln 被链接文件的…

14-1_Qt 5.9 C++开发指南_网络编程及主机信息查询_HostInfo

Qt 网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于 TCP 通信的QTcpSocket 和 QTcpServer,用于 UDP 通信的 QUdpSocket,还有用于实现 HTTP、FTP 等普通网络协议的高级类如 QNetworkRequest,QNetworkReply 和Q…

【英杰送书-第六期】spring—加载监听器

前几天的时候,项目里有一个需求,需要一个开关控制代码中是否执行一段逻辑,于是理所当然的在yml文件中配置了一个属性作为开关,再配合nacos就可以随时改变这个值达到我们的目的,yml文件中是这样写的: switc…