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

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 susudo apt-get updatesudo apt-get upgradesudo 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/video20rkisp-statistics (platform: rkisp):/dev/video18/dev/video19rkcif-mipi-lvds2 (platform:rkcif):/dev/media0rkisp_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.hqwc.cn/news/59653.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL进阶-事务的基础知识

1.什么是数据库事务? 就是把好几个sql语句打包成一个整体执行,要么全部成功,要么全部失败!!! 事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执 行的结果必…

IOS上架流程

IOS上架流程 准备 开发者账号完工的项目 上架步骤 一、创建App ID二、创建证书请求文件 (CSR文件)三、创建发布证书 (CER)四、创建Provisioning Profiles配置文件 (PP文件)五、在App Store创建应用六、…

04-1_Qt 5.9 C++开发指南_常用界面设计组件_字符串QString

本章主要介绍Qt中的常用界面设计组件,因为更多的是涉及如何使用,因此会强调使用,也就是更多针对实例,而对于一些细节问题,需要参考《Qt5.9 c开发指南》进行学习。 文章目录 1. 字符串与普通转换、进制转换1.1 可视化U…

死磕Android性能优化,卡顿原因与优化方案

随着移动互联网的快速发展,Android应用的性能优化变得尤为重要。卡顿是用户体验中最常见的问题之一,它会导致应用的响应变慢、界面不流畅,甚至影响用户的使用体验。因此,我们需要深入了解卡顿问题的原因,并寻找相应的解…

以http_proxy和ajp_proxy方式整合apache和tomcat(动静分离)

注意:http_proxy和ajp_proxy的稳定性不如mod_jk 一.http_proxy方式 1.下载mod_proxy_html.x86_64 2.在apache下创建http_proxy.conf文件(或者直接写到conf/httpd.conf文件最后) 3.查看server.xml文件 到tomcat的安装目录下的conf/serve…

[mongo]应用场景及选型

应用场景及选型 MongoDB 数据库定位 OLTP 数据库横向扩展能力,数据量或并发量增加时候架构可以自动扩展灵活模型,适合迭代开发,数据模型多变场景JSON 数据结构,适合微服务/REST API基于功能选择 MongoDB 关系型数据库迁移 从基…

如何在Spring MVC中使用@ControllerAdvice创建全局异常处理器

文章目录 前言一、认识注解:RestControllerAdvice和ExceptionHandler二、使用步骤1、封装统一返回结果类2、自定义异常类封装3、定义全局异常处理类4、测试 总结 前言 全局异常处理器是一种 🌟✨机制,用于处理应用程序中发生的异常&#xff…

vivado tcl创建工程和Git管理

一、Tcl工程创建 二、Git版本管理 对于创建完成的工程需要Git备份时,不需要上传完整几百或上G的工程,使用tcl指令创建脚本,并只将Tcl脚本上传,克隆时,只需要克隆tcl脚本,使用vivado导入新建工程即可。 优…

使用openapi-generator-cli时遇到了代理的问题

前言:最近在捣鼓一个开源的管理kafka的web版,名字叫kafka-ui。准备部署到本地,方便平时遇到问题时,查看kafka的情况。开源项目github地址:点这里 。拿到这个项目,折腾了几天,今天终于编译成功了…

Kotlin语法

整理关键语法列表如下: https://developer.android.com/kotlin/interop?hlzh-cn官方指导链接 语法形式 说明 println("count ${countnum}")字符串里取值运算 val count 2 var sum 0 类型自动推导 val 定义只读变量,优先 var定义可变变量…

zookeeper的部署

一 先下载zookeeper 二 解压包 三 修改配置文件 四 把配好文件传到其他的节点上面 五 在每个节点的dataDir指定的目录下创建一个 myid 的文件 六 配置zook的启动脚本 七 设置开机自启 八 分别启动 九查看当前状态service zookeeper status 十 总结 一 先下载zookeeper …

vue 标题文字字数过长超出部分用...代替 动态显示

效果: 浏览器最大化: 浏览器缩小: 代码: html: <div class"title overflow">{{item.name}}</div> <div class"content overflow">{{item.content}}</div> css: .overflow {/* 一定要加宽度 */width: 90%;/* 文字的大小 */he…