1-前言
2-环境搭建
3-OpenCV测试
3.1 新建工程
3.2 认识工程
3.2.1 添加opencv库 3.2.2 ui文件 3.2.3 具体代码编写4-联系我们
01 前言i.MX6ULL是一款入门级处理器,不带GPU单元。所以,很多人认i.MX6ULL就是一个能跑linux的单片机而已,其应用场景绝对和图像处理无缘。如果需要对视频进行实时处理,这话没错,i.MX6ULL的性能确实不够。但是有时候,需求仅仅是每1秒通过摄像头获取一张图像,进行简单的处理;或是就想使用一个资源丰富的平台,学习下简单的图像处理操作。这些的场景,i.MX6ULL能否胜任呢?
笔者使用OpenCV进行了一些简单的测试,OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法( 最基本的滤波到高级的物体检测皆有涵盖)。它是如今做数字图像处理的首选之一。
在进行一些实验之后,认为上面的需求是i.MX6ULL可以实现的。迫不及待分享给大家,欢迎一起讨论、交流。
02 环境搭建当安装好我们提供的交叉工具链后, 在交叉工具链的usr/lib目录就已经存放好opencv相关的库文件, 可以直接使用。 在Qt Creator中也可以直接找到这些库,不用额外指定库文件路径。同时,在开发板所提供文件系统/usr/lib/目录,也已经部署了opencv的文件,可直接使用。
03OpenCV测试
3.1.1 新建工程
1) 打开QtCreator软件,选择文件(F)->新建文件或项目:
2) 选择项目类型为Application->Qt Widgets Application。
3) 设置工程名
4) 选择build system为qmake
5) 创建默认项目文件
部分读者可能暂时不明白这些文件的作用,暂且先跟着操作,先把第一个demo跑起来,后面会介绍qt的基础知识。
6) 创建翻译文件
Qt支持多国语言,在不同环境运行时显示为不同的语言,比如在中国显示中文,在日本运行显示为日语。即使我们只在中国使用,也建议大家在代码中使用英文,然后使用ts文件翻译为中文。
7) 选择Kits
在Desktop和imx6ull上面打勾。使这个工程可以在开发板上运行。
8) git管理
将工程添加git版本控制系统。
3.1.2 认识工程
进行上面设置后,会自动打开一个工程,工程内容如下:
3.2.1 添加opencv库
因为我们要调用opencv相关内容,所以需要在.pro文件中添加LIBS设置,代码如下:
3.2.2 ui文件
ui文件是可视化设计的窗体文件。双击文件会打开Qt Designer可视化界面。如下图所示:
在其中放入一个label控件,用于显示图像。
3.2.3 具体代码编写
我们将具体代码放在mainwindow.cpp文件中
首先,包含需要的头文件,并导入命令空间;然后使用cap.open()打开摄像头,用于获取图像;紧接着,初始化一个定时器,设置定时器每30ms触发一次;在定时器触发后,执行update。update方法具体内容如下:
首先,直接将摄像头数据导入到frame,运行cvtColor将图像转换为灰度图,方便进一步处理。得到灰度图后,运行边缘检测算法,得然后再屏幕上显示。
笔者录了一小段视频,方便各位看看效果:
关注我们,我们会持续为您推送更多精彩技术文章……