基于HALCON的螺钉安装检测 工程管理专业_第1页
基于HALCON的螺钉安装检测 工程管理专业_第2页
基于HALCON的螺钉安装检测 工程管理专业_第3页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要 目前在市场上对于螺钉安装的检测大多采用人工,当需要检查的螺丝数量多以及螺丝体积较小的时候,工人检查和安装就比较费力。因此,为了使检测的结果更为快速和准确,本文尝试利用机器视觉算法来解决这一问题。在设计之前,我们对机器视觉和图像处理技术进行了相关的了解,以便更好地解决问题。接着开始试验,首先我们在合适的光照条件下取得螺丝安装的图像;然后通过HALCON软件对得到的图像进行相关的图像预处理并进行检测,检查是否安装螺钉,且对螺钉位置进行重点圈示;最后将得到的检测结果与C+Builder进行交互,通过BCB设计的用户界面展示出来。关键字: 螺钉; 机器视觉;图像处理; HALCON; C+Bu

2、ilder machine vision; image processing; HALCON;C+Builder 目 录1.绪论11.1课题研究的背景及意义11.2国内外研究现状22.机器视觉及软件介绍32.1机器视觉技术简介32.2机器视觉系统32.2.1机器视觉系统简介32.2.2机器视觉检测42.2.3机器视觉的发展动向52.3机器视觉软件52.3.1 HALCON 简介52.3.2 HALCON 特点62.3.3 HALCON 功能发展63.图像处理73.1 图像处理技术73.1.1图像和数字图像73.1.2图像技术和图像工程73.2数字图像处理系统83.2.1图像处理和分析系统83.

3、2.2 图像采集模块93.2.3图像的数据编码和传输9图像预处理技术介绍94.1 图像增强94.2灰度值变换104.3图像平滑114.3.1图像平滑介绍114.3.2 中值滤波11螺钉安装检测的软件设计125.1图像处理的算法流程125.2螺钉安装检测的程序设计14用户界面设计186.1 C+ builder简介186.2 HALCON与BCB混合编程196.2.1混合编程的设计流程196.2.2环境配置与库函数调用206.3 螺钉安装检测界面设计21结语23参考文献24附录25致谢271 绪论1.1 课题研究的背景及意义改革开放以后,经济发展越来越快,许多行业对检测方面的技术要求提高。比如,

4、需要对图像进行实时的监控,对仪器检测的精密度要求也越来越高,还有对半导体芯片的封装检测。我国传统检测方式主要是人工检测,但在现在绝大多数行业的检测中,人工检测存在明显的缺陷和局限性。人工检测不仅工作量大、效率低,而且人工检测的结果容易受到工作人员的熟练度和身体疲劳情况的影响,进而影响到检测结果,同时在高精度检测要求下,人工检测的速度太慢,无法达到企业的要求。因此,现代工业急需一种新的技术来替代人工检测。机器视觉由于近来数字图像处理和计算机技术的快速发展脱颖而出。工厂机器上的螺钉因为时间久了和平时的碰撞冲击,有些螺钉就会变的松动甚至脱落。螺钉的松动和脱落都会对机器的正常运行产生一定的影响,给人们

5、带来一些不可避免的损失。随着工业发展对技术方面要求的提高现代工业生产中,螺钉的安装检测也是工业界的研究热点之一,怎样将其数字化和客观化,是值得我们去探索与深究的。目前在实际螺钉安装检测中使用比较多的是标准样本进行对比。这种方法虽然操作比较简便,只需要在标准光照条件下,由检测人员将待检测的螺钉孔与标准样照进行对比,直观的来判别螺钉是否已安装就可以了;但由于人工检测无法保证持久的准确率,因为人工观察的久了,精神上会感到很疲劳。所以人工检测的方法可靠性较低,容易受到客观影响,难以实现大批量的检测。而机器视觉系统就不一样了,它就能做到高速且持久,同时还有着非接触、精确度高、抗干扰能力强等优点,因此,机

6、器视觉的推广应用理所当然。针对这种状况,本课题试图通过图像处理和机器视觉技术设计出能精确等问题。1.2国内外研究现状在国内,机器视觉是近些年来新兴的技术,它是通过计算机模拟人的视觉来观察事物,在自动化领域、产品检测领域和智能机器人领域有着极其重要的作用。最早应用的行业主要是电子行业和半导体行业,比如PCB印刷、电路组装、元器件制造、半导体设备。刚开始的时候,机器视觉产品主要靠帮外国企业制造加工或者做一些系统集成的工作,很少有自己创造发展的,从事这方面的公司也很少,大多在摸索阶段,正尝试着开始发展自己的技术。但经过这么多年的发展,从2006年以后,我国的机器视觉技术慢慢的就逐渐提高了,特别是工业

7、领域,机器视觉在这方面的发展以居世界前列了。在工业领域中,机器视觉主要用来对于产品质量的检测和分类,我们的螺钉安装检测就属于其中之一;当然,它还用于帮助机器人定位,现如今火热的智能机器人就利用了机器视觉技术。在机器人的眼部装上机器视觉系统以后,机器人就具有了一定的感知能力,它能通过视觉传感器来获取图像信息,并进行一定的自我分析,实现简单的定位功能。机器视觉能得到这么迅速的发展与它的技术实用性是离不开的。首先,在过去的时候,我们一般利用人工对产品进行检测,效率低就不说了,而且人因为工作久了身体劳累、精神疲惫,对产品的检测也就不能保持一贯的专注了,所以产品的标准率也不能保证,因此利用机器视觉来替代

8、人工检测是社会发展的需要,机器视觉让我们在产品生产中更加自动化,效率更高。而自从2013年至今,中国自己的机器视觉公司发展十分迅速,处在快速成长期,拥有了自己的专业技术,可以通过机器视觉做到许多我们以前想都想不到的事,比如对人脸的识别锁定,不过在这方面还需完善,还有很长的路要走,相信未来仅通过一幅照片就可以在网络上找到真人的事情指日可待。就在2017年的4月13日,百度收购了美国科技公司xPerception,加强了自己在视觉感知领域的软硬件能力。在国际上,机器视觉产业已经比较成熟,发展较快的主要是欧洲、美国和日本,他们现在对机器视觉的发展就是稳中求变,既保证能占有现在的市场,而又继续向前奋进

9、创新。国外机器视觉与国内相比的话,不仅技术上有一定的领先,而且国外企业的品牌效应和知识产权发展的相当好,国内在这方面还需要努力。机器视觉是一次技术层面的改革创新,随着市场需求量的不断扩大,在我国的新兴产业中名列前茅,未来甚至可能成为我国的支柱产业。中国很多流水线代工厂在过去的几年里正在不断的采购大量自动化设备取代不断减少的工人和日益上涨的人工成本。随着国家的政策对高新技术行业的大力支持,机器视觉行业在最近几年必将成为中国生产制造行业的爆发行业,机器视觉产业将会保持快速增长。而且由于机器视觉技术自身的突出特点 ,十分符合当今的工业需求,正流行的智能机器人技术、自动驾驶汽车技术也需要它的支持,我们

10、有理由相信它的未来前景将是一片光明。机器视觉及软件介绍2.1机器视觉技术简介机器视觉,简而言之就是利用机器代替人工进行目标识别、判断与测量。它是现代光学、电子学、软件工程、信号处理与系统控制技术等多学科的交叉与融合。机器视觉与某些学科还有一些相似,如图像处理、模式识别和计算机视觉等。但它与这些学科也有区别,有着自己的特点。首先,机器视觉是一门综合技术,它包含许多其它的技术,例如电源照明技术、传感器技术、数字图像处理技术等等,机器视觉需要与这些技术相互协调才能完成相关的功能。然后就是机器视觉的可靠性,它能够在比较恶劣的工业环境中保持稳定工作,而且因为非接触的特点,它的安全性也比较高,不会损坏物品

11、。最后要说的就是它的高速度和高精度特点,能够有效提高生产效率。2.2机器视觉系统2.2.1 机器视觉系统简介机器视觉系统就是对通过机器获取的图像进行相关处理的系统,如图2-1。首先,在合适的场景下,通过机器摄像头,比如CCD取得清晰的图片,然后把它转换成图像信号,交给图像处理系统进行相关处理,根据它的大小、色彩转变成相应的数字化信号,接着就对数字化信号进行特征提取,依靠这些特征来进行描述和判断,最后把判断结果反馈给机器,让机器依据结果做出相应的操作。当然其中包含许多有技术含量的操作和值得注意的地方,在这里特别介绍一下。比如,获取图像时,我们要使机器能有好的光源照射,这样才能捕捉到好的照片;还有

12、将图像转变成数字信号时,要严格根据图像像素的分布、图像的颜色来进行数字化操作;而根据对图像特征值进行处理,我们还能实现坐标计算以及创建有一个灰度直方图的功能;最后,我们还需要一个完好的反馈系统,保证结果能够及时,准确的传达给机器。在现代工业生产中,机器视觉系统被广泛地用于对产品生产过程的质量监控,我们本课题研究的对螺钉的安装检测就属于这方面。还有就是对成品的检验,如对产品表面的缺陷检测,保证产品出厂前的质量安全。2.2.2 机器视觉检测机器视觉检测技术在现今有许多的应用,特别是在工业的应用上十分广泛,下面介绍一下它在各个方面的相关应用。在半导体行业方面,主要是对芯片表面多胶和脏污的检测,还有w

13、afer检测,大都需要通过光源照射,根据反光情况进行判断。在电子产品方面,也主要是对表面缺陷的检测,比如LED灯表面缺陷检测、手机屏表面划伤检测。在激光加工方面,对产品检测的要求就更高了,因为激光加工本身就是一个很精细的活,要对它进行检测就需要更高的水准了,比如对手机玻璃屏听筒孔定位及对IC元件字符及PIN间距检测,都是毫厘之差都不能有,要求十分高。在医药方面主要有对注射液的杂质检测,因为杂质颗粒很小,人眼一般很难察觉出来,还有就是对针尖缺陷检测,检查针尖是否歪了或者闭合了。对日用产品的检测也有很多,比如对布匹、纸杯缺陷的检测,化妆品瓶身的字符检测,手机卡槽的尺寸检测,剃须刀弹片检测,总之机器

14、视觉检测已经应用到了生活的方方面面,人们也将越来越离不开它。2.2.3 机器视觉的发展动向机器视觉随着如今计算机技术和人工智能技术的发展,自身的发展方向也多了起来,前景也更加美好了。因为对许多领域的深入研究和当今计算机技术的飞速发展,很多的计算机实时应用的商业化已触手可及,还有的已经得到相关应用,比如身份识别、智能交通和信息安全等。机器视觉未来甚至可能成为一种嵌入式系统,利用一个微小的处理器就能完成许多功能,它不在局限于工厂产品检测,能够应用于许多方面。例如,现在正在测试的无人驾驶汽车,就需要机器视觉对前方道路的精确检测,能够准确判断前方的各种事物,然后反馈给处理系统,实时的做出最正确的操作,

15、保证汽车的正常行驶。还要一个很重要的方面就是智能机器人和机器视觉的结合,当未来的机器人能够拥有一颗类似人的眼睛,它所能做的就太多了,就不在局限于仅仅做一些搬运之类的工作了,而是拥有无限的可能。就说在工厂,流水线可能就会被机器人占领了;每家每户也有可能拥有一个能干的机器人保姆,帮助你解决生活中的繁琐事;也许,机器人还能帮你当司机,为你做导游,带你领略自然的风光。2.3机器视觉软件2.3.1 HALCON简介mvtec HALCON是一个集成开发环境的机器视觉的综合标准的软件(HDevelop),能在全球范围内使用。HALCON灵活的架构便于各种机器视觉应用的迅速发展,利用它,能减少你的开发成本以

16、及提前开发产品的上市时间。mvtec HALCON提供卓越的性能和多核平台和专用指令集avx2以及GPU加速。它包含成千上万的库文件在成像的所有领域,如斑点分析,形态,匹配,测量,识别和三维视觉。2.3.2 HALCON特点HALCON是三维视觉的革命性技术,它具有50多个形状和灰度值特征的斑点分析,能匹配找到甚至旋转或部分闭塞对象。HALCON能对非常大的图像进行处理,大于32K32K,在如今来说基本上没有什么超过限制的,而且对彩色的图像它也能进行处理。同时HALCON具有高精度的测量,它包含光学字符识别(OCR和OCV)和验证,检测线、圆和椭圆的精度高达1 / 50像素,对任意形状的感兴趣

17、区域(ROIs)有显著的灵活性和速度。它能够做到精确三维摄像机标定,能很好的完成图像序列处理,这个对监控技术提高很大。HALCON能够在大多数计算机操作系统上运行,支持多核和多处理器计算机。HALCON也不限制你怎么获取图像,可以自行挑选合适的设备。原厂已经提供了60余种相机的驱动链接。即使是尚未支持的相机,除了可以透过指针轻易的HALCONDLL文件和系统连接。HALCON软件还能减少你的资金投入,它支持多种操作系统、工业相机和图像采集卡提供的接口,支持genicam标准、GigE Vision,IIDC 1394,USB,USB3 Vision,和Camera Link。兼容Delphi

18、1requirements:HALCON / COM接口32位和Delphi的Borland版本5或更高版本。2.3.3 HALCON 功能发展随着MVTec公司与学术界的合作不断加深,HALCON 功能也在不断的拓展更新,最新的HALCON13中,就有许多更加全面的功能。在HALCON 13中,基于表面的3D匹配在处理平面时变得更加健壮。这种改进尤其支持像选择框这样的应用程序。HALCON 13还提供另外一种新的方法来从高质量的多相机中重建3D物体。这种新方法使用了所有相机视图的信息,从而获得比普通立体重建方法更可靠的结果。通过HALCON 13,MVTec首次提供了基于深度学习的OCR:H

19、ALCON现在包含一个基于深度学习技术的新的OCR分类器,可以通过一些预先训练的字体来使用。有了这些,就有可能获得比以前所有分类方法更高的阅读速率。此外,HALCON 13的自动文本阅读器速度更快,现在也支持点打印字符的阅读。HALCON 13还可以读取条码,即使代码的大部分是有缺陷的,或者根本不可见。此外,QR码读卡器已经得到了改进,并且现在对诸如模糊或失真之类的常见挑战更加健壮。3.图像处理3.1 图像处理技术3.1.1图像和数字图像图像在书本上的定义是三维场景在二维平面上的影像。在我们生活中的理解就是我们眼睛所看到的自然界万事万物的映射,是我们认识世界的重要途径。有的东西不管用怎样华丽的

20、语言描述,也不及看一眼图像来的实际和给人的印象深刻。人在处理图像信息时,基本上能够瞬间捕获二维画面的所有内容,因此在越来越信息化的社会中,图像在信息传播上起着重要的作用。而且随着计算机技术的快速发展,我们甚至能自己创造各种千姿百态的图像。将图像横纵分成各个均等的小方格,把每一个小方格称为像素,给每一个像素赋以灰度值,就成为数字表示的图像,再以数字格式存储图像数据,这个图像就成为数字图像。数字图像是用配置在二维平面上的灰度值或彩色值来表示信息的,信息扩展在二维平面上。用数学描述,若用f(x,y)表示(x,y)处的灰度值,则二维函数F(x,y)表示图像。若为彩色图像,可以认为f(x,y)是由表示红

21、色、绿色和蓝色图像的3个函数fr(x,y)、fg(x.y)和fb(x,y)组成的13。本课题后面主要用到的都是数字图象,我们暂定就用(x,y)来代表数字图像,且、x、y的取值都为整数。3.1.2图像技术和图像工程对各种与图像有关的技术的总称就是图像技术。对于图像技术,我们的主要研究内容是数字图像,主要研究技术是计算机处理图像技术。数字图像只有经过计算机图像处理系统的加工,才能完美的输入、输出;现在我们生活中流行的PS软件就是集合了许多的计算机技术,能够对图像进行完美处理的经典例子。利用计算机对图像的处理包括:对图像的获取,把模拟图像信号转化为计算机能处理的数字信号;具体步骤为摄取图像、光电转换

22、、数字化。对图像的复原,将模糊或损坏的图像进行修复。对图像的增强,改善图像的画面质感。对图像的分割,根据一定的规则和需要,将图像分割成不同区域。图像重建,仅通过一些输入数据,经过处理后就能得到图像,比如CT;图像重建与计算机技术结合还能把多个二维图像合成三维图像,经过光照和技术渲染,生成真实感十足的高质量图像。图像压缩编码,因为图像数据信息较大,经过压缩编码能有效提高传输效率,而且压缩后便于特征提取。此外,图像技术还包括为了完成各种功能而进行的硬件设计制作等方面的技术。随着图像技术近年来的快速发展,出现了许多新理论、新算法、新手段和新设备。图像工作者普遍认为需对图像和图像处理技术进行综合研究和

23、应用,这个工作的框架就形成了图像工程。图像工程是一门系统地研究各种图像理论、技术和应用的交叉学科。图像工程可简单地分为三个层次:图象处理、图象分析和图像理解。图象处理主要是在图像与图像之间进行各种操作加工,让图像的视觉展示结果清晰,为图像的自动识别打下基础。图像分析主要是对我们感兴趣的地方进行检测,提取特征区域,它要做就是讲图像信息转换为数据信息,对目标区域的特点和性质加以概括。图像理解需要根据我们所学习的知识,以及对目标特征的分析,反过来了解整个图像的所有内容,进而弄懂图像中各个目标特征的独立特性及它们之间的联系关系,对图像有一个整体的理解。由上所述,图象处理、图象分析和图像理解处在三个不同

24、的抽象程度层次上。图象处理是低层的操作,它的操作对象是像素,要处理的数据量相当大,工作很繁琐。图象分析是中层的操作,对感兴趣的目标进行特征提取,将图像信息变成数据描述的信息,要处理的数据量适中。而图像理解就是高层操作了,它的操作对象就是从描述抽象出来的符号,抽象程度高,处理方法类似人的思维推理过程。3.2数字图像处理系统3.2.1图像处理和分析系统一个简单的图像处理系统最基本的就是图像摄入设备、图像处理设备和图像输出设备。图像摄入设备就是为了获取图像,采集到图像的相关信息,基本的设备有CCD摄像机、数码摄像机、红外遥感设备和扫描仪。通常图像获取后,就要通过图像输入卡,也称采集卡对图像进行处理,

25、输入到计算机设备中。图像处理设备主要是高速图像处理卡,卡上固化了300多个函数的图像处理库,能有效的对图像进行处理。当然图像处理也可以通过软件完成,比如MATLAB软件与HALCON软件,它们也能对图像进行加工处理。图像输出设备就是显示卡、显示器,图像一般都是保存在显示卡上的,然后通过连接显示器,在显示器上输出。3.2.2图像采集模块图像采集主要是通过摄像头捕捉图像,然后将图像存储在显示卡。而采集数字图像时,首先通过固态阵列的感光基元将图像信息转换为模拟电信号,然后通过数字化器将模拟电信号转换为离散数字信号。图像的数字化基本上要经过5个步骤,首先通过采样孔,让图像能够被数字化设备观测清楚,不被

26、其它条件干扰;其次让采样孔在图像上规律移动,清晰地观察到图像的每一个像素;再通过光传感器采样每一个像素的亮度;然后通过A/D电路把光传感器传来的连续量转变成整数值;最后将输出的值按某种格式存储起来,方便计算机对它的处理。3.2.3图像的数据编码和传输数字图像的数据量太大,需要对它进行一定的数据压缩,才能让图像的传输更加方便快捷。将图像进行压缩的方法主要就是对图像数据进行编码和对图像数据进行变换压缩。图像数据是高度相关的,存在很多冗余,对图像的压缩就是去掉这些冗余信息。图像编码时我们一般使用预测编码,根据空间冗余特性,用相邻的已知像素预测当前的像素值,可以有效的压缩数据。预测编码还需要对已知的像

27、素和当前像素值之间的预测误差进行量化编码处理,常用方法有DPCM和运动补偿法。图像预处理技术介绍4.1图像增强像进行预处理。图4-1(A)图像增强前图4-1(B)图像增强后本文中使用emphasize算子进行图像增强,由图4-1可见,在图像增强前,目标区域和图像的其它区域看起来几乎没什么区别,但在图像增强后,可以看到我们关注的圆圈区域的对比度显著增强。4.2灰度值变换我们在处理螺钉安装检测图像时使用了scale_image_max算子,即最大化图像的灰度值。该算子计算像素的最大和最小值,按照最大值比例化各个像素,它的作用是把原图像的像素灰度经过某个变换函数变换成新的图像灰度,尽管变换前后像素个

28、数不变,但不同像素间的灰度差变大,因而对比度增强,图像更加清晰。4.3图像平滑4.3.1图像平滑简介图像平滑,意思显而易见就是平滑图像,让图像中渐变较大的地方变的平缓舒松,抑制图像噪声。对图像而言,它的边缘、跳跃以及噪声等灰度变化剧烈的部分代表图像的高频分量,而大面积背景区和灰度变化缓慢的区域代表图像的低频分量。图像平滑主要就是抑制高频部分,让图像表现出更多的低频部分,看起来柔和一点,它可以在频域进行,也可以在空间域进行。4.3.2 中值滤波 HYPERLINK /item/%E4%B8%AD%E5%80%BC%E6%BB%A4%E6%B3%A2%E6%B3%95 t /_blank 中值滤波

29、法是一种非线性平滑技术,它将一个区域内的所有像素的灰度值用它们的中值代替。即把灰度值相近且相邻的一些像素连成一个区域,然后求出它们的中值,利用这个中值来代替这个区域,相当于把很多个像素变成一个点,有化整为零的效果,它能很好的消除孤立的噪声点,对脉冲噪声(也称椒盐噪声)的消除效果很好,特别是在消除噪声的同时,还能有效保护边缘区域,它还具有的一个优良特性就是算法相对简单,比较容易用硬件实现它的功能。中值滤波的函数模型为G(x,y)=medF(x-k,y-1),(k,1W),F(x,y)为初始图像,对它进行函数变换,就得到处理后的图像G(x,y);W是一个二维模板,通常代表的是3x3区域或者5x5区

30、域。在实际操作中,我们使用的是median_separate算子,即矩形掩码的离散中值滤波。图4-2 (A)图像平滑前图4-2(B)图像平滑后本文使用mean_image算子来实现图像平滑的功能,采用中值滤波的方式。5.螺钉安装检测的软件设计5.1图像处理的算法流程图像采集模块图像采集模块图像预处理模块图像预处理模块图像分割模块图像分割模块图像分析模块特征提取模块图像分析模块特征提取模块图像实时采集模块:通过图像采集卡实时的、连续不断的把摄像机获取到的图像及时的存储到计算机内存当中去,然后再在计算机内存中进行一系列的简单图像处理。在这个模块我们首先关心的就是采集图像的实时性,要求我们采集图像的

31、速度要快,秒速采集秒速传输,让问题能得到及时的反馈。其次就是采集图像的质量,保证采集到的图像完好无损。图像预处理模块:对图像进行预处理是为了方便后面对图像进行更好的识别和操作。首先要做的就是去掉噪声,把图像上的斑点去掉,让图像看起来更干净,比如滤波;然后对图像进行增强,提高我们主要关注地方的图像对比度;最后稍微平滑一下图像,看起来更舒服一些。经过图像预处理后,能更好对图像进行阈值选取和分割。图像分割模块:只有对图像进行一定的分割,才能更好的得到我们想要的目标区域。对图像进行分割的方法有很多,我们要灵活选择,根据不同的情况选择出当时最适合的方法,只要对图像进行分割后,能帮助我们对目标图像进行更好

32、的分析,所谓最适合的就是最好的。本课题我们就选择了最适合我们的阈值分割,阈值通过对图像的灰度直方图进行比较分析来选取。特征提取模块:在将图像分割为不同区域后,需要进行区域连通,并根据合适的特征提取出我们想要的区域。提取连通区域时需要用到connection和select_shape算子,connection算子是对region(区域)进行连通操作,也就是把邻域内(4连通或者8连通)区域归纳为一个区域,方便后面的select_shape进行感兴趣区域选择。select_shape算子依据形状特点,及该特点的最大最小值选择区域。图像分析模块:通过一系列的图像处理操作,提取出我们想要的图像信息后,对

33、它进行总结分析,判断螺钉是否安装,得到最终的结论。5.2螺钉安装检测的程序设计read_image(Image_two_setup,6.bmp)/读取螺钉的图像 图5-1get_image_size (Image_two_setup, Width_setup, Height_setup)/获取图片长宽 图5-2gen_circle (ROI_0, 463.5, 717.5, 420.609)/在目标区域生成圆 图5-3reduce_domain (Image_two_setup, ROI_0, ImageReduced)/获得目标圆位置的图像scale_image_max (ImageRedu

34、ced, ImageReduced_two_setup) / 最大化图像的灰度值 mean_image (ImageReduced_two_setup, ImageMean2_two_setup, 15, 15)/取平均值平滑图像图5-4emphasize (ImageMean2_two_setup, ImageEmphasize_two_setup, 91, 91, 1)/增强图像对比度图5-5scale_image_max (ImageEmphasize_two_setup, ImageEmphasize_two_setup)/最大化图像的灰度值 mean_image (ImageEmph

35、asize_two_setup, ImageEmphasize_two_setup, 15, 15)/取平均值平滑图像scale_image_max (ImageEmphasize_two_setup, ImageEmphasize_two_setup) / 最大化图像的灰度值 median_separate (ImageEmphasize_two_setup, ImageEmphasize_two_setup, 15, 15, mirrored) /使用矩形掩码的离散中值滤波 scale_image_max (ImageEmphasize_two_setup, ImageEmphasize_

36、two_setup) threshold (ImageEmphasize_two_setup, Region2_setup, 0, 200)/分割图像 图5-6 closing_circle (Region2_setup, Region2_setup, 10)/关闭一个圆形结构基础的一个区域 图5-7erosion_circle (Region2_setup, RegionErosion, 65)/用一个圆形的结构元素来腐蚀图像connection (RegionErosion, ConnectedRegions3_setup)/连通区域select_shape (ConnectedRegio

37、ns3_setup, ConnectedRegions31_setup, area,circularity,max_diameter, and, 3000,0.9,50, 99999,99999,99999)/根据特征值选择区域 图5-8count_obj (ConnectedRegions31_setup, Number)/用来计算被识别出来的区域的个数 if (Number=1) check_result := 11 /不合格 无螺钉 else check_result := 99 /合格 已安装螺钉 Endif6.用户界面设计6.1 C+ Builder 简介C+ Builder是由Bo

38、rland公司推出的一款可视化集成开发工具。C+builder不仅提供了快速、强大、现代的c+ ;还有惊人的框架:一个编译器,一个调试器,一个ide ,四个平台。在C+ Builder上开发时,能够让你专注于自己的代码设计;因为它自身带有许多的控件,有文本输入的、显示结果还有button按钮,只需要把控件拖到窗体Form上,简单设计一下控件的位置、名称和属性就能得到一个可视化的界面,十分的方便。而且在能快速进行可视化界面的同时,它还包含C+开发环境所能提供的所有功能,实现了可视化编程环境和功能强大的编程语言的完美结合,让你的应用程序比任何其它的C+有更好的市场。不仅如此C+ Builder的发

39、展也十分迅速,功能也将越来越完善。C+ Builder包括一个增强的语音基础编译Windows(32和64),iOS和Android,所有平台上使用这一编译器可以快速、一致地开发。现在它还能提供快速开发功能、可视化的客户端 / 服务器和让企业进入它的数据库中使用通用的数据库访问库 (firedac)。6.2 HALCON 和 BCB 混合编程6.2.1 混合编程的设计流程HALCON和BCB混合编程就是在HALOCN中编写好检测程序,用C/C+格式导出,然后在BCB中通过库文件调用它,以BCB为开发环境,编写出一个可视化的检测软件。该方法的程序设计流程如图6-1所示: 开始开始 读取图像 读取

40、图像HALCON螺钉安装检测系统HALCON螺钉安装检测系统HALCON导出C/C+代码HALCON导出C/C+代码BCB环境下封装BCB环境下封装C/C+代码程序功能验证程序功能验证判断得出结果判断得出结果图 6-1 HALCON与BCB混合编程设计流程以HALCON为核心编写螺钉安装检测识别与统计系统应用程序的步骤如下:步骤一:读取图像,把获取到的图像通过read_image算子获取直接通过文件路径找到图像,然后读取到程序中。步骤二:编写HALCON程序,能够对读取的图像执行检测代码,检测出螺钉是否安装成功。步骤三:由HALCON导出检测识别的程序代码,生成C代码或者C+代码通过指令加入到

41、BCB程序中;步骤四:配置HALCON和BCB混合编程的程序开发环境;BCB环境中利用按钮控件来搭建可视化界面,通过程序语言的功能开发整个螺钉安装检测识别程序,并完成程序功能验证;6.2.2 环境配置与库函数调用由于图像的处理过程是HDevelop中设计的,使用BCB设计用户界面时需要 调用HDevelop中导出的C程序代码及HALCON库,所以首先要做的是在BCB中配 置相应的混合编程环境,主要包括头文件路径和链接文件及路径的设置,具体步 骤如下:步骤一:在project-options的Dictionaries/Conditionals属性页中配置Include path: D:halco

42、nqmqq_bcb;D:BCBopencv21_ok;D:Program FilesBorlandCBuilder6Projects;$(BCB)include;$(BCB)includevcl;C:Program FilesBorlandVictorVCL;D:BCBopencv21_okopencvBCinclude; D:Program FilesMVTecHALCON-10.0include步骤二:在project-options的Directories/Conditionals属性页中配置Library path:D:halconqmqq_bcb;D:Program FilesBor

43、land CBuilder6 Projects;$(BCB)libobj;$(BCB)lib;步骤三:导入OpenGLPackage:下载TOpenGL并解压,打开C+ Builder 6.0。在菜单栏选择project-options-Packages-Add,打开文件夹TOpenGLB,选择OpenGLPackage.bpl文件,单击打开按钮就可以了。将OpenGLSrc.h复制到D:Program FilesBorlandCBuilderInclude文件夹下。将OpenGLPackage.bpl文件复制到D:Program FilesBorlandCBuilderBin文件夹下。将Op

44、enGLPackage.lib、OpenGLPackage.bpi文件复制到D:Program FilesBorlandCBuilderLib文件夹下。6.3 螺钉安装检测界面设计 图6-2 (a)检测前 图6-2(b)检测后结语经过了差不多半年的努力奋斗,这篇论文终于接近了尾声,我感觉十分不易。从最初在老师那拿到论文题目,接着自己慢慢摸索,到处查阅资料,然后进行反复的调试和修改,再到论文完成,每一步对我来说都是新的挑战,这也是我在学校所独立完成的一个最大的项目。虽然说在摸索的过程中吃了很多苦,但我从中也学到了许多,从对机器视觉和HALCON了解甚少到如今的充分了解和能够初步的运用,中间的每一

45、次进步都让我兴奋很久,看到因自己努力而渐渐完善的论文,心中充满了满足感。经过这么长的学习,我也充分认识到了机器视觉检测的强大之处,了解了它在很多方面的应用,我也相信在未来机器视觉会随着工业发展而日益壮大。这次做论文的经历使我受益匪浅,我感受到做论文就是要踏踏实实地去做,一步一步地去实现每个阶段的目标,遇到瓶颈不要放弃,多去找资料,多看多学,你会发现其实并不难,而且当你成功时,内心的喜悦会告诉你前面的辛苦都是值得的,狂风暴雨后的彩虹才会更加的绚丽迷人。当然,本课题中也有需要完善的地方,比如对阈值的选取,仅依靠灰度直方图来判断,有时可能会漏掉重要的图像信息,因此需要进一步的完善。还有就是软件部分,

46、本系统基本上能完整的实现螺钉安装检测的功能,但是要在工业市场上现场正常应用还需不断的调试、修改,尽量使软件的操作简单、直观,让工人能迅速上手,提高工作效率,实现它的真正使用价值。参考文献:1 韩晓军.数字图像处理技术与应用M.北京:电子工业出版社,2017.2 阮秋琦.数字图像处理基础M.北京:清华大学出版社,2009.3 张铮.数字图像处理与机器视觉:Visual C+与Matlab实现.M.北京:人 民邮电出版社,2014.4 陆卫忠.C+ Builder 6程序设计教程M.科学出版社,2011.5 赵鹏.机器视觉理论及应用M.北京:电子工业出版社,2011.6 左建中.螺纹检测的机器视觉

47、方法研究M.天津:天津大学机械工 程学院,20067 张国云.数字图像处理及工程应用M.西安:西安电子科技大学 出版社,2016.8 孙兴华,郭丽.数字图像处理:编程框架、理论分析、实例应用和源码实现M.北京:机械工业出版社,2012.9 Kenneth R. Castleman.Digital image processingM.Beijing : Publishing House of Electronics Industry, 2008.10 赵景波.C+ Builder 6.0 基础教程M.机械工业出版社,2004.11 余文勇.机器视觉自动检测技术M.北京:化学工业出版社,2013.12 Ramesh Jain, Rangachar Kasturi, Brian G. Schunck.Machine visionM. 北京 :

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论