大家好,今天主要和大家聊一聊,如何使用QT中的Camera的功能和实现。
第一:摄像头资源简介
开发板上有一路“CSI”摄像头接口,支持OV5640、OV2640 和 OV7725(不带 FIFO)。同时有USB 接口,可以接 USB 免驱摄像头。例程兼容 USB摄像头与正点原子的 OV5640、OV2640 和 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库函数,整体实现还是比较麻烦的,环境配置非常重要。