winform如何获取控件下边缘与窗体下边缘的距离_Qt OpenCV边缘检测

74bccd850048cb742dfd0fae68e7f251.gif

目录

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的文件,可直接使用。

03

   OpenCV测试   

3.1.1  新建工程

1) 打开QtCreator软件,选择文件(F)->新建文件或项目:

cbf42b770bada547b8b65f4508559d58.png

2) 选择项目类型为Application->Qt Widgets Application。

416cadc581845c1554ea9d51df2e717e.png

3) 设置工程名

37352c76222e30799d533ef8835cf36e.png

4) 选择build system为qmake

26c6f76468801ec5f6fd3c84e5a40c49.png

5) 创建默认项目文件

8879ff7027e47a7a3fa36c44c1d467d0.png

    部分读者可能暂时不明白这些文件的作用,暂且先跟着操作,先把第一个demo跑起来,后面会介绍qt的基础知识。

6) 创建翻译文件

8879ff7027e47a7a3fa36c44c1d467d0.png

    Qt支持多国语言,在不同环境运行时显示为不同的语言,比如在中国显示中文,在日本运行显示为日语。即使我们只在中国使用,也建议大家在代码中使用英文,然后使用ts文件翻译为中文。

7) 选择Kits

9e3f555138940163a539fef13cd75dd5.png

    在Desktop和imx6ull上面打勾。使这个工程可以在开发板上运行。

8) git管理

d7e425b8d6bc5f961015d8d4286f9acc.png

    将工程添加git版本控制系统。

3.1.2  认识工程

    进行上面设置后,会自动打开一个工程,工程内容如下:

68173d16466c13c42279cc95fdd81fd5.png

3.2.1  添加opencv库

    因为我们要调用opencv相关内容,所以需要在.pro文件中添加LIBS设置,代码如下:

0e9f0ee8e93b09d256c588f3a785af7c.png

3.2.2  ui文件

    ui文件是可视化设计的窗体文件。双击文件会打开Qt Designer可视化界面。如下图所示:

9067a8d5c2b443b0de677e5a831e6f4a.png

    在其中放入一个label控件,用于显示图像。

3.2.3  具体代码编写

    我们将具体代码放在mainwindow.cpp文件中

9678d94f2c5f4660ddea58570f7c87fb.png

    首先,包含需要的头文件,并导入命令空间;然后使用cap.open()打开摄像头,用于获取图像;紧接着,初始化一个定时器,设置定时器每30ms触发一次;在定时器触发后,执行update。update方法具体内容如下:

f21a6940cf860b7668c81071926b6233.png

  首先,直接将摄像头数据导入到frame,运行cvtColor将图像转换为灰度图,方便进一步处理。得到灰度图后,运行边缘检测算法,得然后再屏幕上显示。

    笔者录了一小段视频,方便各位看看效果:

关注我们,我们会持续为您推送更多精彩技术文章……

5be447385a0c479e4b931ba5155d1ee3.png

2dba15df83ae230edf2b6c9c43c42279.png

3ceeb8ed4ce6fb8362fb770d4ce02691.png

a0d216bbeac610d56fb9b06853cb21bd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值