除在外。瑕疵面积的计算法在本系统中瑕疵的面积可以直接用来代替,当瑕疵面积小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。瑕疵长的计算法计算瑕疵长时,基于瑕疵的线性特征,首先对瑕疵做细化操作,得到单像素宽的瑕疵骨架曲线。瑕疵的长度实际上就是骨架图像骨干点之间的长度之和。骨化后的图像是个单像素宽度的连通性好的骨干图像。可以分别求取相邻像素之间的长度,然后把所有的相邻像素之间的距离求和即为所得,如下式公式,和,是相邻骨干点的两个点是水平方向的比例因子,即水平方向上的像素个数与实际情况水平长度的比值是垂直方向的比例因子,即水平方向上的像素个数与实际情况垂直长度的比值是两个相邻像素之间的长度。总长度即为所有相邻像素之间的长度之和。当瑕疵长小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。瑕疵宽的计算法计算瑕疵宽时,仍然对瑕疵做细化操作后,骨架各点所在的瑕疵的位置的宽度反应出瑕疵各段的宽度。由于骨架曲线是单像素曲线,则个骨架点与相邻点的其他两个骨架点相接,分别求出与相邻点的斜率。则每个斜率的垂线与瑕疵边缘相交两点,两点的连线的大小即为宽度值。比较这两个宽度值其中较小的为这个瑕疵的宽度。设骨架曲线的其中个骨架点用,表示,其相邻骨架点分别为,和,。骨架线在点的斜率近似用直线的,,,,,导师评语率表示,则斜率表示为公式过骨架点斜率为的直线与瑕疵图像边缘交于两点,记为,。则此瑕疵的宽度表达式为公式同理,骨架线在点的斜率近似用直线表示,同样的原理求出,然后比较与的大小,取较小值作为瑕疵的宽度。最后结果,。当瑕疵宽小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。实际的检测效果如下,图密封圈灰度图为相机步骤到的密封原图,图算法最终的处理结果为本算法得到的最终的处理结果,可以看到,所有位于密封圈表面上的瑕疵都被检测出来了图密封圈灰度图图算法最终的处理结果实验结果我们的最终成果如图所示,我们已经搭建出了检测平台包括相机光源嵌入式主板触摸屏显示器等元素。软件的识别算法也能达到预计的水平。图成果图本章小结本章主要讲述了密封圈表面识别算法的主要流程。并对每个步骤用文字公式和图片的方式进行了详细的解说。第章总结与展望本文讲述了密封圈的图像采集结束后如何通过利用嵌入式图像处理技术,对密封圈上的瑕疵图像进行处理,提取出瑕疵的信息,并对瑕疵的特征参数与密封圈合格标准参数进行比较,筛选出合格的密封圈的过程。根据瑕疵的特有的特征,对比当前流行的图像识别算法,改进出套更加适合密封圈检测的图像识别算法。算法中对均值滤波和中值滤波图像二值化特征提取等过程均作了改进。实现了较为快速适合的密封圈识别算法。当前所有的算法都是用语言在上实现的,但是能否直接用在工业上检测密封圈,该算法还需要在速度上和精确性上得到提高,在之后的这段时间我会继续努力在机器视觉上寻求新的突破。将来展望机器视觉将完全代替人工肉眼完成所有的检测识别。参行分区域统计。遍历图片内存。统计的区域划分如图所示图分区域法示意图对蓝色区域的共个区域分别进行直方图统计,每个区域都求出相对应的阈值,遍历该区域内的像素点成员当,的像素值与阈值之间的灰度差距大于人为设定的参数时,就说明该点与周围像素环境之间存在着明显的不同。可将该点的灰度值赋值为。否则该点赋值为。公式如下当时当时公式最终从得到的新二值图像内存数组命名为。该数组的亮度信息如图所示。图二值图可以在上图中看出,瑕疵的信息因为局部二值化的关系而被很好的保留了下来。瑕疵特性参数计算瑕疵特征的提取主要包括瑕疵面积长度和宽度的计算等。为了要提取出这些信息,可以用区域生长法来完成。区域生长法提取普通的区域生长法是连通法。就是对个点的上,左上,右上,左,右,下,左下,右下共个方向进行遍历扫描,如果在该遍历方向上也存在与当前遍历点的像素值相同的点时,就将该个点看做都是属于同个瑕疵上的像素点。但是考虑到当前系统中捕捉到的瑕疵往往是属于狭长的缝。而用连通法提取狭长缝隙的信息时就很有可能就会造成缝的断裂。最终会导致将条缝的信息分为了块或多块连通区域信息来处理。为了避免这现象,我们将区域生长法做了如下改进首先定义下瑕疵的结构体数组用来保存每个瑕疵的信息,结构体成员信息可以是瑕疵长,瑕疵宽,瑕疵面积等等。本系统采用的是可调节的全方位拓展法求区域生长。设每个方向上向外拓展个像素。如图全方位拓展法求所示,点上的每个方向的像素都向外拓展了个像素,即。入队出队图全方位拓展法求区域生长扫描内存数组信息里的目标圆环区域,如果发现点的像素值,等于时,就将该点标记为点,并堆入队列中。每次遍历队列,如果发现队列不为空,就让队尾元素出队,出队的同时,记录下当前出队的点的坐标位置并以该点做为基准往个方向连通个像素出去,形成个的窗口如图全方位拓展法求所示。遍历窗口里的点成员如果该点位于内存数组的目标圆环检测区域内,并且该点对应的像素值,等于时,就亦将该点标记为点,并堆入队列中。如此依次循环。在往复的过程中如果发现当前出队点的轴坐标小于在它之前出队的点的轴,就将的值赋值给变量。如果发现当前出队点的轴坐标大于在它之前出队的点的轴,就将的值赋值给变量。如果发现当前出队点的轴坐标小于在它之前出队的点的轴,就将的值赋值给变量。如果发现当前出队点的轴坐标大于在它之前出队的点的轴,就将的值赋值给变量。直循环到队空为止。此时,则说明条瑕疵的信息遍历结束。记录下此时的,四个值,并统计好之前的入队的个数。则有公式公式这样,对于瑕疵信息数组,每个成员都代表的是每个瑕疵在维图像上的所有信息。瑕疵的判断虽然我们根据全方位拓展法求得了瑕疵数组。但是并不是所有的瑕疵都会影响产品的合格与否。所以我们还要通过计算各个瑕疵的特性,排除掉些无关紧要的瑕疵。对于般密封圈表面来说,些很小的点瑕疵,极短的缝瑕疵,以及位于圆环表面的瑕疵都对密封圈的使用没有任何影响。所以我们要通过计算,将这些瑕疵排考文测试。例如登录页面图会员登录密码输入不正确就会出现以下的页面图会员失败白盒测试侧重内部的运行状况,又称结构测试。例如注册会员的页面中出现了密码不符合要求就会出现以下的页面图个人信息代码如下,设计将概念模型转化为相应的数据表,经过分析共建立了三张常用表包括用户表用于存放用户基本信息,见表航班表用于存放航班信息,见表订票表用于存放会员订票信息,见表表用户表字段名称字段类型字段长度是否为空说明主键,用户密码真名性别电话邮箱身份证表航空表字段名称字段类型字段长度是否为空说明航空号起飞日期目的价格票数时刻表订票表字段名称字段类型字段长度是否为空说明用户名航空号起飞日期目的价格票数时刻详细设计前台设计下面以列表形式给出前台页面各部分的说明信息,如下表所示。区域名称说明对应文件注册会员进行会员信息注册会员登陆用于会员登录管理员登陆管理员登录后台,进行相关处理表前台图网站前台首页代码如下加载插入图像会员模块会员管理模块共包括四个功能模块图会员功能当客户想在网站订票必需为本网站的会员,如果不是本网站的会员客户可以在网站上进行注册成为网站的会员。图会员注册页面代码如下注册会员的验证用户名不能空长度不能大于不能出现嫚同学,她帮我收集了不少资料,给予我不少的帮助。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长同学朋友给了我无言的帮助,在这里请接受我诚挚的谢意,最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们,与金额相关的信息提取出来,并且记录在软件中。最重要的是要防止重复记录。系统提醒功能当记录的总金额达到用户设定的上限之后,再用函数使系统显示文字提醒,并且还伴有声音的发出,同时进行提醒。为了不成为强制性软件,我并没有设计阻止使用网银的功能。网站导航功能本系统还提供了购物网站导航的功能,将市面上的主流购物网站都添加了进去,更加方便用户购物,付款以及收货。基于的网购防沉迷软件的设计图系统的功能结构图如上图所示,这就是本系统基本的功能结构图了。本系统有这么几个基本的功能。有监控短信,提取信息,记录信息,发出提醒,添加删除系统号码,及网站导航几个功能,这些功能在层次上都是并列的。系统模块设计系统建模与分析设计是研究和应用如何以系统化规范化可度量的方法开发运行和维护软件的种层次化技术,包括过程方法和工具三个要素。根据分析,网购防沉迷软件网站导航添加删除系统号页面图订票页面代码如下列出航班的信息如果出于种原因客户什么都不想买,客户可以点击按钮,系统清空购物车中的所有购物项,并跳转到预订机票页。图查看订票页面管理员模块管理员模块共包括四大模块图管理员模块当管理员通过管理员渠道登录进去后,会进入相应的航班定制主页。图管理员登录页面代码如下管理员的账号当管理员点击按钮后,进行当前航班的信息定制。图制定航班代码如下得到航班号,利用这两种单元测试对系统进行修改,使得系统更加完善总结本系统从最初的确定课题到进行需求分析及系统设计再到最后的编码测试,经历了三除在外。瑕疵面积的计算法在本系统中瑕疵的面积可以直接用来代替,当瑕疵面积小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。瑕疵长的计算法计算瑕疵长时,基于瑕疵的线性特征,首先对瑕疵做细化操作,得到单像素宽的瑕疵骨架曲线。瑕疵的长度实际上就是骨架图像骨干点之间的长度之和。骨化后的图像是个单像素宽度的连通性好的骨干图像。可以分别求取相邻像素之间的长度,然后把所有的相邻像素之间的距离求和即为所得,如下式公式,和,是相邻骨干点的两个点是水平方向的比例因子,即水平方向上的像素个数与实际情况水平长度的比值是垂直方向的比例因子,即水平方向上的像素个数与实际情况垂直长度的比值是两个相邻像素之间的长度。总长度即为所有相邻像素之间的长度之和。当瑕疵长小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。瑕疵宽的计算法计算瑕疵宽时,仍然对瑕疵做细化操作后,骨架各点所在的瑕疵的位置的宽度反应出瑕疵各段的宽度。由于骨架曲线是单像素曲线,则个骨架点与相邻点的其他两个骨架点相接,分别求出与相邻点的斜率。则每个斜率的垂线与瑕疵边缘相交两点,两点的连线的大小即为宽度值。比较这两个宽度值其中较小的为这个瑕疵的宽度。设骨架曲线的其中个骨架点用,表示,其相邻骨架点分别为,和,。骨架线在点的斜率近似用直线的,,,,,导师评语率表示,则斜率表示为公式过骨架点斜率为的直线与瑕疵图像边缘交于两点,记为,。则此瑕疵的宽度表达式为公式同理,骨架线在点的斜率近似用直线表示,同样的原理求出,然后比较与的大小,取较小值作为瑕疵的宽度。最后结果,。当瑕疵宽小于人为设定的参数时,我们就对该瑕疵判断为合格。反之,则判断为不合格。实际的检测效果如下,图密封圈灰度图为相机步骤到的密封原图,图算法最终的处理结果为本算法得到的最终的处理结果,可以看到,所有位于密封圈表面上的瑕疵都被检测出来了图密封圈灰度图图算法最终的处理结果实验结果我们的最终成果如图所示,我们已经搭建出了检测平台包括相机光源嵌入式主板触摸屏显示器等元素。软件的识别算法也能达到预计的水平。图成果图本章小结本章主要讲述了密封圈表面识别算法的主要流程。并对每个步骤用文字公式和图片的方式进行了详细的解说。第章总结与展望本文讲述了密封圈的图像采集结束后如何通过利用嵌入式图像处理技术,对密封圈上的瑕疵图像进行处理,提取出瑕疵的信息,并对瑕疵的特征参数与密封圈合格标准参数进行比较,筛选出合格的密封圈的过程。根据瑕疵的特有的特征,对比当前流行的图像识别算法,改进出套更加适合密封圈检测的图像识别算法。算法中对均值滤波和中值滤波图像二值化特征提取等过程均作了改进。实现了较为快速适合的密封圈识别算法。当前所有的算法都是用语言在上实现的,但是能否直接用在工业上检测密封圈,该算法还需要在速度上和精确性上得到提高,在之后的这段时间我会继续努力在机器视觉上寻求新的突破。将来展望机器视觉将完全代替人工肉眼完成所有的检测识别。参