《基于数字图像的矩形芯片定位方法研究与实现大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于数字图像的矩形芯片定位方法研究与实现大学本科毕业论文.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要毕 业 设 计(论 文) 题 目: 基于数字图像的矩形芯片定位方法 研究与实现 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要
2、求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文
3、作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文
4、支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1
5、)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 摘 要毕业设计的任务是以数字图像处理技术为基础,实现矩形芯片的定位。本文介绍了数字图像处理的基础知识,讨论了传统的边缘检测算法的优缺点,针对矩形芯片的特征设计出一种新的边缘检测算法,利用一定斜率的直线扫描图像,得到直线上像素点的灰度值之和,再根据差分法求出最优斜率,经过多次实验设定一定的阈值,求出图像边缘所在的直线,并利用计算机编程技术对得到的参数数据进行研究,分析出芯片与水平线的夹角和芯片的中心坐标,为后期的准确焊接提供支持。关键词: 数字图像处理 ;边缘检测 ;中心坐标 ;夹角IAbstract Abstr
6、act This paper of the graduated design is based on digital image processing technology, to achieve the positioning of the rectangular chip.This paper introduced digital image processing knowledge, discussed the advantages and disadvantages of the traditional edge detection algorithm , designed of a
7、new edge detection algorithm in view of the characteristics of the rectangular chip, scanned image by making use of the straight-line of a certain slope, got the gray value of the pixel line, and then derive the optimal slope based on the difference method, through a series of experiments set a cert
8、ain threshold, where is the calculated straight-line of the edge, also make use of computer programming technology to research according to the parameters of data, analysis the chip and the angle between the horizon and the center of the chip coordinates, to provide support for the latter accurate w
9、elding.Keywords: Digital image processing; Edge detection; Center coordinates; Angle;II目录 目录摘 要IAbstractII第一章 研究现状和实际意义11.1 数字图像处理的背景11.2 数字图像处理的研究现状11.3 矩形芯片研究的实际意义2第二章 数字图像编程基础32.1 Windows编程简介32.1.1 Visual C+简介32.1.2Visual C+数字图像编程基础42.2开发平台5第三章 数字图像处理典型算法63.1 BMP图像简介63.2 边缘检测原理63.3 四种典型边缘检测算子73.3
10、.1 Roberts边缘检测算子73.3.2 Sobel边缘检测算子73.3.3 Prewitt边缘检测算子83.3.4拉普拉斯边缘检测算子93.4 四种典型算子的不足之处15第四章 系统功能设计与实现164.1 总体设计164.2 界面设计174.3 矩形芯片图像的获取184.3.1 灰度图简介184.3.2 矩形芯片的读取与显示134.4矩形芯片边缘检测的设计144.4.1 边缘检测算法的设计思路154.4.2 边缘检测最优斜率K的计算164.4.3 边缘扫描174.4.4 边界提取方案194.5矩形芯片偏角的计算204.6矩形芯片中心坐标的计算204.7功能总结26第五章 小结与感受27
11、5.1 VC+编程感受275.2 本芯片定位方法的意义235.3 本芯片定位方法的优点235.4 本研究有待改进的地方23结束语24参考文献25基于数字图像的矩形芯片定位方法研究与实现 第一章 研究现状和实际意义1.1 数字图像处理的背景数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程,就是采用计算机对图像进行信息加工。图象处理的主要内容有:图像的采集、增强、复原、变换、编码、重建、分割、配准、嵌拼、融合、特征提取、模式识别和图像理解。数字图像处理是一个跨学科的前沿科技领域,它与数学、光学、电子学、计算机技术、成像技术、视觉心理学、视觉生理学、计算
12、机视觉和人工智能密切相关。 数字图像处理最早出现于20世纪50年代,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量。输入的是质量低的图像,输出的是改善质量后的图像。首次获得实际成功应用的是美国喷气推进实验室。他们对航天探测器在1964年发回的几千张月球照片使用了图像处理技术,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。数字图像处理取得的另一个巨大成就是在医学上获得的成果。1972年英国工程师 Hounsfield 发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT。
13、CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类做出了划时代的贡献。从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究图像理解或计算机视觉。很多发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。1.2 数字图像处理的研究现状近年来图像处理技术发展非常迅速,应用也越来越广,已经渗透到工程、工业、医疗保险、航天航空、军事、科研等各个方面,有些技术已经相当成熟并取得了惊人的效益。20世纪20年代,图像处理首次得到应用。20世纪60年代中期,
14、随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提取有效信息, 还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。数字图像处理因易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。主要用
15、于图像变换、量测、模式识别、模拟以及图像产生。广泛应用在遥感、宇宙观测、影像医学、1通信、刑侦及多种工业领域。图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。随着科学技术的发展,数字图像处理技术的应用领域也将随之不断扩大。进入21世纪,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就。属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等。该技术成为一门引人注目、前景远大的新型学科。数字图像处理技术在航空航天、工业生产、医疗诊断、资源环境、气象及
16、交通监测、文化教育等领域有着广泛的应用,创造了巨额社会价值;同时还远远不能满足社会需求,自身也在不断完善和发展,有很多新的方面要探索。它必将向更深入、更完善的方向发展:处理算法更优化,处理速度更快,实现图形的智能生成、处理、识别和理解。1.3矩形芯片研究的实际意义 基于数字图像的研究国内已有很多例子,例如基于SPCA563B芯片的图像识别系统,是凌阳科技公司推出的一颗用于图像识别领域的IC,不仅具有一般单片机的控制功能,而且具有图像识别与处理能力。该图像识别系统就是以它为核心进行数据处理与控制。该系统已实现的功能有:物体颜色和形状识别、字符识别以及手势识别等。利用这些识别的结果,可以开发游戏、
17、趣味教学、智能玩具、文字输入以及智能识别等应用系统。还有近年来对各种车牌图像的提取文献都用到了图像识别的方法,对车牌的定位,车牌的边缘检测以及对车牌上各种字符(英文字母和数字)的识别,还要有一定得图像分割与模式匹配,得到车牌上的各种字符。本课题是基于数字图像的矩形芯片的定位研究,主要通过对芯片在电路板上的扫描图像,识别图像的外观、形态及坐标,利用正确的算法计算芯片在电路板上放置的正确性,从而达到芯片正确焊接的目的。本课题的工作主要分为以下三个方面:一是读入矩形芯片的图像,得到图像的坐标和每个坐标对应的RGB值,研究图片的灰度信息。二是针对矩形芯片的特征设计边缘检测算法,得到图像的边缘并把边缘提
18、取出来。三是在已经得到的矩形芯片图片的边缘与轮廓的基础上,利用计算机编程技术对得到的参数数据进行研究,分析出芯片中心坐标和芯片与水平线的夹角,为后期的准确焊接提供数据支持。2第二章 数字图像编程基础2.1 Windows编程简介Windows编程是基于Microsoft公司的window操作系统的编程,windows编程可以为windows操作系统制作软件,而且windows编程是基于窗口的.不像以前的DOS编程只有一个屏幕,而window可以在可见化的世界里任意施展,window32全部都是用c写的.下面简单介绍一下与 Windows 系统密切相关的几个基本概念:窗口:窗口是Windows本
19、身以及Windows 环境下的应用程序的基本界面单位。从用户的角度看,窗口就是显示在屏幕上的一个矩形区域,其外观独立于应用程序,事实上它就是生成该窗口的应用程序与用户间的直观接口;从应用程序的角度看,窗口是受其控制的一部分矩形屏幕区。应用程序生成并控制与窗口有关的一切内容,包括窗口的大小、风格、位置以及窗口内显示的内容等。用户打开一个应用程序后,程序将创建一个窗口,并在那里默默地等待用户的要求。每当用户选择窗口中的选项,程序即对此做出响应。 程序:通常说的程序都是指一个能让计算机识别的文件,接触得最多的便是.exe型的可执行文件。进程:所谓进程就是应用程序的执行实例(或称一个执行程序)。需要注
20、意的是:进程是程序动态的描述,而上面说到的程序是静态的描述,两者有本质的区别。线程:线程是进程中的一个执行单元,同一个进程中的各个线程对应于一组CPU指令、一组CPU寄存器以及一些堆栈。进程本来就具有动态的含义,然而实质上是通过线程来执行体现的,从这个意义上说,Windows进程的动态性意义已经不是很明显了,只算是给程序所占的资源划定一个范围而已,真正具有动态性意义的是线程。消息:我们几乎做每一个动作都会产生一个消息,在用鼠标指点江山的今天,鼠标被移动会产生WM_MOUSEMOVE消息,鼠标左键被按下会产生WM_LBUTTONDOWN的消息,鼠标右键按下便产生WM_RBUTTONDOWN消息等
21、等。所有的这些都可以通过Get Message,Send Message等函数得到。事件:从它的字面意思我们就可以明白它的含义,如在程序运行的过程中改变窗口的大小或者移动窗口等,都会触发相应的“事件”。 句柄:单单一个“柄”字便可以解释它的意思了,我们天气热时摇扇子的时候只要抓住扇柄便可以控制整个扇子的运动了,在程序中也差不多是这个意思。通常一个句柄就可以传递我们所要做的事情。有经验的读者肯定清楚,编写程序总是要和各种句柄打交道的,句柄是系统用来标识不同对象类型的工具,如窗口、菜单等,这些东西在系统中被视为不同类型的对象,用不同的句柄将他们区分开来。2.1.1 Visual C+简介Visua
22、l C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出3Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment, IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Vis
23、ual C+它大概可以分成三个主要的部分:1 Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C+”,所以很多人理所当然的认为,那就是Visual C+了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer
24、 Studio当成Visual C+, 它充其量只是Visual C+的一个壳子而已。2 MFC。从理论上来讲,MFC也不是专用于Visual C+,Borland C+,C+ Builder和Symantec C+同样可以处理MFC。同时,用Visual C+编写代码也并不意味着一定要用MFC,只要愿意,用Visual C+来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C+本来就是为MFC打造的,Visual C+中的许多特征和语言扩展也是为MFC而设计4的,所以用Visual C+而不用MFC就等于抛弃了Visual C+中很大的一部分功能。但是,Visual
25、 C+也不等于MFC。3 Platform SDK。这才是Visual C+和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C+编译器为核心,配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。2.1.2 Visual C+数字图像编程基础一幅图像定义为一个二维函数f(x, y),这里x和y是空间坐标,在任何一对空间坐标
26、(x, y)上的幅值f称为该点图像的强度或灰度。当幅值f为有限的、离散的数值时,称该图像为数字图像。数字图像由有限的元素组成,每个元素都有一个特定的位置和幅值,这些元素称为像素(图像元素或画面元素)。数字图像从数学的角度其实就是一个二维矩阵, 因此数字图像处理本质上就是矩阵运算.通常所说的数字图像处理是指计算机对图像信息的处理。总的来说,数字图像处理包括以下几项内容:点运算,几何处理,图像增强,图像复原,图像形态学处理,图像编码,图像重建,模式识别等。点运算:主要针对图像的像素进行加减乘除等运算。图像的点运算可以有效的改变图像的直方图分布。几何处理:主要包括图像的坐标转换,图像的移动、缩小、放
27、大和旋转,多个图像的配准以及图像扭曲校正等。几何处理是最常见的图像处理手段。图像增强和图像复原:影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD(摄像头)获得的图像经过A/D(数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征
28、,它的目的主要是提高图像的可懂度。图像增强的方法分为空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作;而频域法是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如傅里叶变换、DCT变换等的系数,然后再进行反变换得到处理后的图像。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立降质模型,再利用该模型,恢复原始图像。图像压缩(图像编码):图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码。图像数据之所以能被压缩,就是因为数据中存在着冗余。5图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关
29、性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。模式识别:模式识别是指对表征事物或现象的各种形式的信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程。它是信息科学和人工智能的重要组成部分,主要应用领域是图像分析与处理、语音识别、声音分类、通信、计算机辅助诊断、数据挖掘等学科。图像重建:指通过对离散图像进行线性空间内插或线性空间滤波来重新获得连续图像的方法。2.2开发平台 1) 硬件平台:PC一台2) 系统平台:Wi
30、ndows 2000 或者Windows XP操作系统3) 开发环境:Microsoft Visual C+ 6.0第三章 数字图像处理典型算法3.1 BMP图像简介BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选1bit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换图像数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。典型的BMP图像文件
31、由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。在BMP位图中,位图每行的灰度值要填充到一个四字节边界,即位图每行所占的存储长度为四字节的倍数,不足时将多余位用0填充。本文所研究的芯片图片格式是BMP 24bit图像深度。3.2边缘检测原理所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要特征。两个具有不同灰度值的相邻区域之间
32、总存在边缘,边缘是灰度值不连续的表现。常见的边缘点有:阶梯型边缘(Step-edge),即从一个灰度(或线性灰度)到达比它高(或低)很多的另一个灰度;屋顶型边缘(Roof-edge),它的灰度是慢慢增加(减少)到一定程度然后慢慢减小(增加);线性边缘(Line-edge),它是灰度线性变换中出现的灰度脉冲。在计算机视觉和图像处理过程中,边缘检测是捕获图像中物体的重要特征的过程。这些特征包括物体光学度、几何、物理等的不连续性。在灰度图像中,这些信息产生了灰度的变化,这些变化包括不连续性和极大值。边缘检测的目的就是定位这些变化和鉴别产生变化的物理现象。边缘检测的结果提供了图像的重要特征。许多边缘检
33、测操作都是基于亮度的一阶导数这样就得到了原始数据亮度的梯度。使用这个信息我们能够在图像的亮度梯度中搜寻峰值。如果 I(x) 表示点 x 的亮度,I(x) 表示点 x 的一阶导数(亮度梯度),这样我们就会发现:对于更高性能的图像处理来说,一阶导数能够通过带有掩码的原始数据(1维)卷积计算得到。6其它一些边缘检测操作是基于亮度的二阶导数。这实质上是亮度梯度的变化率。在理想的连续变化情况下,在二阶导数中检测零点将得到梯度中的局部最大值。另一方面,二阶导数中的峰值检测是边线检测,只要图像操作使用一个合适的尺度表示。如上所述,边线是双重边缘,这样我们就可以在边线的一边看到一个亮度梯度,而在另一边看到相反
34、的梯度。这样如果图像中有边线出现的话我们就能在亮度梯度上看到7非常大的变化。为了找到这些边线,我们可以在图像亮度梯度的二阶导数中寻找过零点。如果 I(x) 表示点 x 的亮度,I(x) 表示点 x 亮度的二阶导数,那么同样许多算法也使用卷积掩码快速处理图像数据。一旦我们计算出导数之后,下一步要做的就是给出一个阈值来确定哪里是边缘位置。阈值越低,能够检测出的边线越多,结果也就越容易受到图片噪声的影响,并且越容易从图像中挑出不相关的特性。与此相反,一个高的阈值将会遗失细的或者短的线段。一个常用的这种方法是带有滞后作用的阈值选择。这个方法使用不同的阈值去寻找边缘。首先使用一个阈值上限去寻找边线开始的
35、地方。一旦找到了一个开始点,我们在图像上逐点跟踪边缘路径,当大于门槛下限时一直纪录边缘位置,直到数值小于下限之后才停止纪录。这种方法假设边缘是连续的界线,并且我们能够跟踪前面所看到的边缘的模糊部分,而不会将图像中的噪声点标记为边缘。3.3 四种典型边缘检测算子如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征是灰度的变化率和方向,它们分别以梯度向量的幅度和方向来表示。边缘检测算子检查每个像素的邻域井并对灰度变化率进行量化,通常也包括方向的确定有若干种方法可以使用,其中大多数是基于方向导数掩模求卷积的方法。3.3.1 Roberts边缘检测
36、算子 Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内 产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。它由公式(3.1)给出: g(x,y)=2+2 (3.1)其中f(x, y)是具有整数像素坐标的输入图像。其中的平方根运算使该处理类似于人类视觉系统中发生的过程。3.3.2 Sobel边缘检测算子 索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之
37、近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。8图3.1所示的两个卷积核形成了Sobel边缘算子。图像中的每个点都用这两个核做卷积。一个核对通常的垂直边缘响应最大而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出值、运算结果是一幅边缘幅度图像。Gx= and Gy= 图3.1 Sobel边缘算子图像的每一个像素的横向及纵向梯度近似值可用(3.2)公式结合,来计算梯度的大小。 G = (3.2)然后可用(3.3)公式计算梯度方向。 (3.3)如果以上的角度等于零,即代表图像该处拥有纵向边缘,并且左方较右方暗。3.3.3 Prewitt边缘检测算子在一个较大区域中
38、,用两点的偏导数值来求梯度幅度值,受噪声干扰很大。若对两个点的各自一定领域内的灰度值求和,并根据两个灰度值和的差来计算x, y的偏导数,则会在很大程度上降低噪声干扰。源于这种思想,Prewitt于1970年提出了提取边缘的Prewitt算子,其系数加权模板如表3.1 和3.2:表3.1 Prewitt算子模板1 -1 -1 -1 0 0 0 1 1 18表3.2 Prewitt算子模板210-110-110-1上图所示的两个卷积核形成了 Prewitt边缘算子。 与使用Sobel算子的方法一样,图像中的每个点都用这两个核进行卷积,取最大值作为输出。Prewitt 算子也产生一幅边缘幅度图像。3
39、.3.4拉普拉斯边缘检测算子拉普拉斯算子是对二维函数进行运算的二阶导数算子,通常使用的拉普拉斯算子如表3.3和3.4. 表3.3拉普拉斯算子10-10-14-10-109 表3.4拉普拉斯算子2-1-1-1-18-1-1-1-1由于拉普拉斯算子是一个二阶导数,他将在边缘处产生一个陡峭的零交叉,由于噪声对边缘检测有一定得影响,所以拉普拉斯算子是效果较好的边缘检测器。根据图像边缘处的一阶微分(梯度)是极限值点,图像边缘处的二阶微分应为零,确定过零点的位置要比确定极值点容易得多,而且比较精确。但二阶微分对噪音更为敏感。因此,在通常情况下,在对图像进行拉普拉斯算子进行边缘处理前,应先对图像进行平滑滤波
40、器处理,一般采用的是高斯滤波器。把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑噪声,再进行边缘检测的方法叫做高斯拉普拉斯算子(简写log算子)。常用的log算子是55的模块,如表3.5。 表3.5 log算子模块-2-4-4-4-2-4080-4-48248-4-4080-4-2-4-4-4-2在log算子中对边缘进行判断时采用的技术是零交叉检测,可以把零交叉检测进行推广,我们只要在检测前用指定的滤波器对图像进行滤波,然后再寻找零交叉点作为边缘。3.4 四种典型算子的不足之处 由上述边缘算子产生的边缘图像看来很相似。它们看起来像一个绘画者从图片中做出的线条画。Robert算子是2*2算子
41、,对具有陡峭的低噪声图像响应最好。其它三个算子,都是3*3算子,对灰度渐变和噪声较多的图像处理得较好。使用两个掩模板组成边缘检测器时,通常取较大得幅度作为输出值。这使得它们对边缘的走向有些敏感。取它们的平方和的开方可以获得性能更一致的全方位响应。这与真实的梯度值更接近。但是以上三种经典算子检测出来的边缘在本文的芯片定位中所达到的效果却不是很好,因为本文的主要目的是通过边缘检测得出芯片的偏角和中心坐标,这些经典的算法只能把边缘显示出来,但之后要求的偏角和中心坐标却难以求出,所以边缘检测的算法必须重新设计。10第四章 系统功能设计与实现4.1 总体设计本系统主要通过对芯片在电路板上的扫描图像,识别
42、图像的外观、形态及坐标,利用正确的算法计算芯片在电路板上放置的正确性,从而达到芯片正确焊接的目的。本课题总共分为以下几个模块:模块一:读入矩形芯片的图像,得到图像的坐标和每个坐标对应的RGB值。模块二:设计边缘检测算法,得到图像的边缘。 包括:1.最优K的计算.2.纵向扫描和横向扫描,得出边缘所在直线的截距. 3.画出边缘直线.模块三:求出芯片与水平线的夹角和芯片中心坐标。系统模块如图4.1,子模块如图4.2所示:矩形芯片定位方法与实现读入图像并得到图像坐标和RGB值边缘检测得到图像边缘求出芯片与水平线夹角和中心坐标 图4.1系统模块11边缘检测最优K的计算纵向扫描横向扫描画出边缘直线 图4.
43、2子模块4.2 界面设计本设计是在VC 6.0的编程环境下实现的,在MFC Appwizardexe中创建一个新的单文档实现图像的打开和读取。然后在编辑栏下添加边缘检测等菜单,并做相应的消息映射。界面如图4.3:12 图4.3 界面显示4.3 矩形芯片图像的获取4.3.1 灰度图简介 本文主要研究BMP灰度图, 灰度图(Grayscale)是指只含亮度信息,不含色彩信息的图像,就像我们平时看到亮度由暗到明的黑白照片,亮度变化是连续的,因此要表示灰度图,就需要把亮度值进行量化,通常划分为0-255共256个级别,0最暗,255最亮。 BMP格式的文件可以用256色的调色板来表示灰度图,只不过这个
44、调色板有点特殊,每一个RGB值都是相同的,也就是RGB值从(0,0,0)一直到(255,255,255)。灰度图使用比较方便,首先RGB值都一样,其次图像数据即调色板索引值,也就是实际的RGB的亮度值。4.3.2 矩形芯片的读取与显示1)本矩形芯片的图像是典型的256色bmp文件格式,芯片图像的读取是在CBmp256Doc文件的Serialize函数中,通过ar.Write函数和ar.Read函数来读取图像的位图文件头、位图信息头、颜色表和位图数据本身。ar.Write(m_buffer,m_InfoHeader-biWidth*m_InfoHeader-biHeight)为位图分配一定空间的缓冲区。2)在CBmp256View文件中,如果缓冲区不为空,通过OnDraw函数调用ShowBuffer函数把缓冲区中的图像显示在内存设备环境中。if(pDoc-m_buffer!=NULL)m_height=pDoc-m_InfoHeader-biHeight;m_width=pDoc-m_InfoHeader-biWid