linux系统中使用QT实现摄像头功能的方法

简介: linux系统中使用QT实现摄像头功能的方法

     大家好,今天主要和大家聊一聊,如何使用QT中的Camera的功能和实现。

 



第一:摄像头资源简介

      开发板上有一路“CSI”摄像头接口,支持OV5640、OV2640 和 OV7725(不带 FIFO)。同时有USB 接口,可以接 USB 免驱摄像头。例程兼容 USB摄像头与正点原子的 OV5640OV2640 OV7725 摄像头。出厂系统请更新到最新的出厂系统,在驱动层正点原子对 OV5640、OV2640 和 OV7725 摄像头维护、优化或者添加支持。

第二:环境搭建要求

      要想在 Ubuntu 上使用 OpenCV,那么我们的 Ubuntu 上必须有 OpenCV 的库,如果您不想 在 Ubuntu 安装 OpenCV,就可以跳过这小节,直接用出厂系统提供的交叉编译工具链,里面已 经提供有 OpenCV。在 Ubuntu 上安装 OpenCV 只是方便我们测试界面,编写的程序也可以在 Ubuntu 上运行。安装的步骤也比较简单。

       可以直接在官网下载对应的OpenCV,进入 OpenCV 的官网 https://opencv.org/releases。下载 3.4.1 版本的 OpenCV。

   

        如下图已经下载好文件,并拷贝下载好的文件到 Ubuntu 的家目录下。

     

执行下面的指令进行解压。解压将会得到一个 opencv-3.4.1 文件夹,我们使用 cd 指令进入此文件夹。

tar xf opencv-3.4.1.tar.gz
cd opencv-3.4.1

       安装cmake,用于生成编译OpenCV所需要的文件。

sudo apt-get install cmake

        新建一个 build 目录,并进入,用于编译生成的文件。

mkdir build
cd build

        执行 cmake 配置编译。注意下面的指令“..”不要漏了!这里表示上一层目录。cmake 会从上一层目录下找配置项,并配置到当前目录。

cmake ..

       在配置的过程中 cmake 会下载一些库,ippicv_2017u3_lnx_intel64_general_20170822.tgz,需要一段时间,请等待,如果不能下载成功请重复尝试。

cmake 配置成功如下图。

      执行 make 开始编译。输入下面的指令。

 make -j 16

// 以实际分配给虚拟机的核心数为准,最佳为分配给虚拟

机核心数据的 2 倍。笔者的虚拟机最大分配了 16 个核心,笔者个人的电脑并不快,就是核心多,

所以编译就快。编译完成耗时约 5 分钟。不要只输入 make,否则将编译很久!需要加参数 -j n

n 请根据个人虚拟机的实际情况。

执行下面的指令安装,安装到系统目录,需要加 sudo 权限。

sudo make install

安装完成如下。可以看到库被安装到/usr/local/lib 下,头文件被安装在/usr/local/include 下。

     我们只需要知道安装的库路径和头文件路径即可在 Qt 里调用 Ubuntu 安装的 OpenCV。头文件作用来编写程序,库路径用来运行程序时调用。我们只要在 Qt pro 项目文件里指定这两个路径即可。

第三:代码编译实现要求

     如果我们的 Ubuntu 没有安装 OpenCV 就会使用不了 OpenCV。如果您在 19.2 小节已经安装过 OpenCV,那么下面两个套件都可一起选。本次笔者两个一起选,因为笔者有 USB 摄像 头可以在 Ubutnu 上使用 OpenCV 测试,编写的程序交叉编译后在 I.MX6U 开发板使用 USB 免驱摄像头或者正点原子 OV5640/OV7725(不带 FIFO )/OV2640 测试成功!

 

总结:利用QT实现摄像头的功能,可以使用OPENCV的库,调用对应的API库函数,整体实现还是比较麻烦的,环境配置非常重要。

目录
相关文章
|
1月前
|
Ubuntu Linux 网络安全
在Linux上安装软件有多种方法
在Linux上安装软件有多种方法
96 64
|
2天前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
13 2
|
8天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
10 1
|
9天前
|
运维 安全 Linux
Linux文件清空的五种方法总结分享
每种方法各有优势,选择最合适的一种或几种,可以极大提高您的工作效率。更多有关Linux系统管理的技巧与资源,欢迎访问,持续提升您的运维技能。
54 1
|
29天前
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
38 1
|
1月前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
39 2
|
2月前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
25 0
|
3月前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
640 2
|
2月前
|
存储 缓存 Linux
Linux文件系统的功能规划
【9月更文挑战第12天】本文通过类比图书馆,形象地解释了文件系统的组织形式和管理方法。首先,文件系统需按块存储文件,并设有索引区方便查找。其次,热点文件应有缓存层提高效率,文件需分类存储以便管理。最后,Linux内核需记录文件使用情况,通过文件描述符区分不同文件,确保文件操作准确无误。
|
3月前
|
Linux 开发工具 文件存储
Linux修改主机名的两种方法
Linux修改主机名的两种方法
39 0