图像处理过程.docx

上传人:b****4 文档编号:26731519 上传时间:2023-06-22 格式:DOCX 页数:6 大小:141.15KB
下载 相关 举报
图像处理过程.docx_第1页
第1页 / 共6页
图像处理过程.docx_第2页
第2页 / 共6页
图像处理过程.docx_第3页
第3页 / 共6页
图像处理过程.docx_第4页
第4页 / 共6页
图像处理过程.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

图像处理过程.docx

《图像处理过程.docx》由会员分享,可在线阅读,更多相关《图像处理过程.docx(6页珍藏版)》请在冰豆网上搜索。

图像处理过程.docx

图像处理过程

图像处理过程

图像处理过程

图像处理作为小车走迷宫过程中获得信息的第一过程,对于小车的计算路径和确认位置起到了根本的作用,经过了对于OPENCV和LABVIEW两种软件的了解,我们发现虽然OPENCV在图像处理方面确实十分强大,但是其扩展性与易用性均不如LABVIEW来的好,我们权衡利弊,决定使用LABVIEW进行对于图像的处理。

LABVIEW以其强大的虚拟仪器库著称,我们在本次小车图像处理中用到了以下的组件:

1.NI.Labview8.2

2.NI.Vision.v8.5.Acquisition.Software

3.NI.Vision.v8.5.Development.Module

4.NI-IMAQFORUSB*

*对于XPSP2系统还需要加载ImaqDirectShowDll.dll、ImaqDirectShowExportDll.dll

图像处理部分分为主要由以下几个部分组成的:

1.图像采集

2.图像阈值分析和转化

3.迷宫出入口检测与小车检测

4.迷宫转化成数组(提供给迷宫算法的接口)

在Labview中我们可以很容易的利用其本身就拥有的扩展库来完成以上的操作,下面对于我们的图像处理程序进行介绍:

1.图像采集

我们组在图像采集部分采用的是动静结合的方法,即先采集一张静态的迷宫图像,通过这个图像,标定出迷宫出入口和小车初始位置,事先计算出小车应该走的路径,之后在小车开始行动之后进行动态采集,分析小车的位置,再对比算出的位置与之前的最短路径来确定小车如何行动。

相对于其他组利用OPENCV进行的动态采集,需要不断的计算路径和修正小车方向,我们的方法大大减少了运算量,也减少了小车卡在角落的可能。

2.

3.

4.迷宫出入口的检测与定标。

在计算中我们把迷宫转化成了一个矩阵,但是图的边界不一定是迷宫的边界,我们需要手动标定出迷宫的边界,这是就需要用到IMAQSelectPoint,通过鼠标点选选出迷宫的边界(角)的坐标,如下图所示。

在标定了迷宫边界之后,我们就可以进行对于小车和终点位置的标定了,我们在小车上放上与迷宫颜色同样的圆形,终点处也放一个圆形,两个圆形拥有不同的大小,它们的颜色与迷宫墙壁相同,于是可以通过二值化被保留下来。

利用IMAQDetectCircles可以检测到这些圆形,因为半径的不同可以设置合适的值来分辨出小车和出口的不同。

 

5.迷宫算法程序在LABVIEW中的接入

在经过了以上的过程之后,我们已经拥有了二值化后的迷宫(矩阵形式)还有迷宫出口的坐标,小车的坐标(即起始点坐标),可以开始计算小车走迷宫的路径了,这时就需要接入C++程序来对路径进行计算。

Labview的可扩展性很强,我们可以把C++代码生成一个DLL文件来插入Labview中去。

在函数选板中找到互连接口->库和可执行程序->调用库函数节点就可以建立一个dll调用节点。

设置各种参数并导入dll文件就可以了。

我们的迷宫算法接口输入了一个二维数组和小车的坐标以及出口的坐标,假设迷宫是4×4大小,则在这里生成一个4×4的二维数组其中标出了小车应该走的路径,具体的实现参见迷宫算法部分。

6.串口通信

Labview因为其强大的扩展功能对于串口通信来说自然是不在话下,如下图就是一个串口通信的例子:

如图写入一个0到串口。

 

感想:

这次也是我进入大学以后第二次做科创类的课题了,与科创1的玩玩闹闹不同,科创3的难度确实给了我们不少的挑战,一开始我们觉得Labview是可视化编程或许相对于纯代码的OPENCV要简单不少,但是随着对于Labview进行了了解了之后,我发现它并不是一个简单的东西,而且我们也不能像使用OPENCV的组那样有很多能够用来参照的样例。

但是我还是坚持下来并把这个图像处理的部分做了下来,回头来看看,这过程中翻查资料,试验编程的过程中,自己还是有了长足的进步。

然而之后却遇到了更大的难题,就是Labview各个版本不统一,且对于中文系统的支持不好,导致我们动态采集部分一直会报错,我们暂时用静态的图片迭加解决了这个问题。

然而在我们组编好迷宫算法,虚拟调试能够找到正确的路径,并且发送正确的命令时,小车却一动不动了。

因为我们组拿到小车的时间很晚,没有对小车进行初步的调试就直接模拟了环境,但不料小车却无法正确接收指令,而我们到最后也没能解决这个问题,实在是非常遗憾。

但是我想经过了这次科创的学习与实践,我对于Labview以及单片机控制都有了入门的了解,相信如果之后能够遇到类似的问题,一定能够成功的解决。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1