基于数字图像处理的印刷电路板智能检测方法.doc
基于数字图像处理的印刷电路板智能检测方法摘 要印刷电路板检测作为现代电子产品生产过程关键的一环,在一开始无法形成高效的处理模式,传统的人工检测存在速度慢、效率低、人力成本高等缺点,使得印刷电路板无法适应大批量生产。印刷电路版的智能检测方法在现代电子器件的发展和电路的小型化、可视化中起着重要的作用。在这种环境下,如何通过低成本实现高效率、准确性和速度,对芯片电路板的检测具有重要意义。光学检测技术具有速度快、精度高、成本低等优点,正渐渐取代传统的人工检测技术。本设计实现了对相机采集到视频进行图片采集、平滑滤波、降噪、图像增强处理以及边缘提取,从而完成对焊盘的清晰处理,来解决传统印刷电路板精度低、速度率慢的问题。本设计在数字图像处理的基础上,应用了MATLAB软件,完成对印刷电路板的焊盘进行智能检测且边缘清晰的设计,实现了提高印刷电路板生产效率和降低生产成本的目的。关键词:数字图像处理;MATLAB;印刷电路板;边缘检测;图像增强Printed Circuit Board Intelligence Based on Digital Image Processing Energy Detection MethodAbstractAs a key link in the production process of modern electronic products, PCB inspection cannot form an efficient processing mode at the beginning. Traditional manual inspection has the disadvantages of slow speed, low efficiency and high labor cost, which makes PCB unable to adapt to mass production. Intelligent detection of printed circuit plate plays an important role in the development of modern electronic devices and the miniaturization and visualization of circuits. In this environment, how to achieve high efficiency, accuracy and speed through low cost is of great significance to the detection of chip circuit board. Optical detection technology has the advantages of high speed, high precision and low cost, and is gradually replacing the traditional manual detection technology.This design has completed the image acquisition, smooth filtering, noise reduction, image enhancement and edge extraction of the video collected by the camera, so as to realize the clear processing of the butt pad, to solve the problem of low precision and slow speed of the traditional printed circuit board. This design is based on digital image processing, the application of MATLAB software, the completion of the printed circuit board solder pad for intelligent detection and edge clear design, to improve the production efficiency of printed circuit board and reduce the production cost.Keywords: Digital image processing; MATLAB; Printed circuit boards; Edge detection; Image enhancement目 录1 前言11.1 课题研究的目的、意义11.2 国内外的发展概况及存在的问题21.3 课题的主要研究内容32 图像预处理32.1 图像的采集32.2 灰度图转化42.2.1 图像的二值化42.2.2 二值化处理和灰度图转化52.3 图像降噪62.3.1 图像降噪算法62.3.2 算法实现103.4 增强处理123.4.1 直方图123.4.2 直方图均衡化123 边缘检测163.1 边缘检测算法163.3.1 Canny算子163.3.2 LOG算子183.2 算法实现193.2.1 Canny算子193.2.2 LOG算子214 结论22参考文献25谢辞26附录271 前言基于数字图像处理的印刷电路板智能检测方法是一种基于数字图像处理对印刷电路板焊盘及其焊点进行识别的智能检测方法。近几十年来,规模巨大的集成电路技术以及计算机技术发展迅猛、离散数学理论趋于完善,数字图像处理技术也得到了广泛的应用1。数字图像处理(Digital Image Processing)是通过计算机对图像进行的一系列去噪、增强、复原、分割、提取特征等处理的技术。该技术产生和发展主要受三个因素影响:一是计算机的发展;二是数学的发展;三是应用需求的增长2 。用来解决图像在采集过程中会受到传感器灵敏、噪音干扰等问题的影响,使图片无法呈现令人满意的视觉效果;且在图像研究和应用的过程中,需要把图像的目标部分进行分割划分成为有意义的、相互不干扰不重叠的部分,使一个区域内的像素呈现规律特征或需要进行局部强化等问题,需要通过算法对图像进行处理。印制电路板(Printed circuit boards,简称PCB板),是一用来连接电器元件,明确又高效整洁的实现现代元器件安装的一种方法。其主要功能是降低布线和安装元器件的错误率,从而提高生产的自动化水平和效率。本设计主要基于数字图像处理的有相关知识,来设计一种可以对相机获取的视频进行处理,实现焊盘的清晰识别,进而达到提高印刷电路板制作效率和制作精度,提高电子元器件的生产质量的智能检测方法。1.1 课题研究的目的、意义本设计目的是为了实现把相机获取印刷电路板的视频进行处理,实现对焊盘的清晰识别的效果。日益发展的技术对电子产品的复杂性及其性能的要求日益提高,印刷电路板是重要的元器件,所以PCB的智能检测是现代电子产品生产中的关键环节。传统印刷电路板的方式,存在高成本,低效率的问题。之前,印刷电路板传统的检测采用人工检测的方式,人力成本高、精度低、效率低等问题使得印刷电路板无法实现高数量和高质量的生产。而印刷电路板的光学检测技术就可以很好的解决这些问题。所以光学检测等类似的智能检测方法正在逐步代替人工方式。在数字图像处理的基础上,完成对印刷电路板的智能检测,可以很好的处理相机采集到的视频和图像,从而实现对焊盘的清晰处理,对实现电子器件的自动插装贴装以及电子元器件的发展有着重要的现实意义。本设计应达到处理相机获取的关于印刷电路板的视频,获取二维图像进行处理平滑滤波、去噪、边缘处理、边缘提取,并且可以输出每一步的处理结果,最终处理后的图像可以进行印刷电路板焊盘的边缘提取,并且提取后的边缘尽可能清晰。1.2 国内外的发展概况及存在的问题在二十世纪四十年代,印刷电路板及相关印刷电路板产品逐步实现商用,在五十年代,得到广泛的普及和应用。传统印刷电路板行业同半导体行业相比,技术难度低,但是劳动密集。至今为止,中国已经成为世界上有影响力的PCB生产国。在一百多年的发展过程中,印刷电路板生产和应用发生了翻天覆地的改变,主要体现在其功能、尺寸和生产方式上。最近几年,集成电路和印刷电路板得到了充分的发展和应用,个人电脑的发展是PCB技术取得重大进展的一个最好的例子。在近一百多年的发展过程中,印刷电路板出现了很多生产方式,如:蜡纸腐蚀法、胶带打印法、激光打印发等。在实现印刷电路板进行焊盘识别、提高贴片质量等方面的现有技术趋于完善,已有全自动贴片机实现识别焊盘,可将元器件精准的放置在焊盘上,从而实现高速高精度的工作方式。计算机发展迅速,计算机获取信息的方式逐渐从文字转变为图像和视频,所以数字图像处理变得越来越重要,数字图像处理可以实现目标信息的增强和提取,大大减少处理的数据3。传统PCB检测存在高成本、低效率问题,提出一种基于数字图像处理的PCB板自动光学检测方法,针对PCB板生产过程中遇到的短路、断路、空洞、凸起、凹陷等缺陷,采用了求连通区域数、计算欧拉数、求缺陷区域面积等方法,来检测上述缺陷问题,并给出算法的全过程,经实验结果分析,该方法能准确地检测出待检测电路板上存在的缺陷,达到了自动实时检测的目的4。或是通过MATLAB 软件把数字图像处理知识,应用于具体的印刷电路板图像的处理,如平滑处理、边缘检测等,从而更好地实现 PCB 板错误检测5。1.3 课题的主要研究内容本设计的研究内容主要分为四个部分:(1)MATLAB软件无法直接处理一整个视频,则如何实现将通过相机拍摄的印刷版视频变成图片进行下一步处理。(2)在拍摄过程中,存在摄像头的电子干扰,拍摄环境光线的变化等因素都会导致噪音的产生,这种情况下会使照片的质量降低。转化为灰度图后怎样将获取的图片进行滤波处理,对图像的噪声进行抑制,避免造成过多的噪声污染。且用什么算法把降噪方式同接下来的处理方法结合起来来达到更好的对焊盘的识别。(3)如何处理降噪后的图片,来提高边缘的可辨识度。若通过图片增强处理该应用哪种算法以达到更好的增强效果。(4)对上一步处理后的图像,如何进行边缘提取,进行目标识别、边缘提取,用哪种算法可以和上述算法配合来得到最优的结果。2 图像预处理2.1 图像的采集在本设计中,通过在MATLAB中对对相机获取PCB板的视频进行处理。目的是为了将印刷电路板的视频转化为图片进行接下来的处理。视频(Video)是用电子信号的方式来捕捉、记录、处理、存储、传输和再现一系列静止图像的各种技术。视频中肉眼可见的连续视觉效果其实是由一帧一帧的数字图像构成。相机拍摄的PCB视频,将获取的印刷电路板的视频取一帧进行二维的图像处理。将视频转化为可处理的图像采用抽帧的方式,主要应用到三种函数:VideoReader、get获取帧数和read读取帧。首先要在MATLAB中读取到视频文件对象,有别于图片读取,采用的函数为VideoReader,obj=VideoReader('2.mp4');在目标文件夹中读取名称为2.mp4的视频,可得到视频的总帧数,get为获取视频对象obj的参数,numFrame=get(obj,'NumberOfFrames');为了达到每隔100帧取一帧的效果,在开始可以设置n=100,此时1为初始值,numFrame也就是视频的总帧数为终止值,n为步长,每一次增加为n,直到达到视频总帧数为止。read 为读取视频帧6。应用imshow函数显示出这一步frame抽帧的结果,详细代码如下:k=1:n:numFrame frame=read(obj,k); imshow(frame);2.2 灰度图转化2.2.1 图像的二值化在了解灰度图转化前,首先要了解什么是图像增强。在拍摄图像的过程中,会出现曝光不足,曝光过分导致的图像模糊不清,无法突出感兴趣的信息。造成这些问题的原因有很多,比如曝光采集时的干扰还有一些噪音,散斑,运动模糊造成图像不清晰。图像增强就是将图像进行修改,使图像达到最想要最清晰的程度,可以方便后续的人工识别和处理,图像增强是图像预处理中最基础的手段。不同的图像因为状态和应用的不同适合不同的图像增强方法,图像增强的实现分为空域和频域两个部分,灰度转化属于空域里实现图像的增强。本次设计将抽帧获取的印刷电路板的图像进行灰度图转化。黄绿青蓝黑品红白红GBR将抽帧提取到的图片进行灰度图转化,灰度变换技术是逐个像素颜色的改变,相机采取的PCB板图像为色彩图像,彩色图像一般通过几个色彩通道叠加组成,每个通道代表一个给定通道的值。例如,RGB图像由红、绿、蓝三种独立的主色组成,三原色按照不同比例相加就可以组成多种颜色,如图2.1所示。彩色的深浅有不同的等级,比如从浅蓝到深蓝之间就有256个等级,数字越大相对应的颜色就越深。 图2.1 RGB图像无彩色的图像包含二值图像和灰度图像,此次设计应用到了灰度图转化和二值化两种图像处理方法,将原来彩色图片中的R、G、B统一用一个值来替换,则将其转化为灰度图。灰度图是指整个图片中每个像素的灰度等级都处于白和黑两种亮度等级之中,通常使用256级灰度图像,每个像素的灰度级处于0到256之间,如果一个像素的灰度值为0则为白色,若为255则为黑色,0到255之间的数值则为白色到黑色的过度。在现代的应用过程中,主要是要实现计算机对图像的识别,其中最关键的就是梯度,左右梯度大幅度变化普遍代表边缘,边缘通常是一个图像的关键信息。想要识别边缘,就要计算梯度,就要先得到一个图片的灰度图。二值化是将灰度图的每个像素点的灰度值变为0或者255两种数值,整个图片只有黑白两种亮度等级,让整个图像呈现完全的黑白效果,通常用数字0或1来代表,0代表黑、1代表白。想要提取出来想要的目标物体常常用二值化,将背景留白,只保留所需要的内容。二值化的基本处理中有个阈值,如果一个像素小于阈值则置黑,大于阈值则置白,整个图像就只剩下黑白两种颜色,阈值的选取非常重要,域值过大会使图像中信息过度保留,会保留一些噪声;阈值过小,使背景过度留白,提取不到目标信息或者使想得到的目标信息模糊不全。2.2.2 二值化处理和灰度图转化在 MATLAB 中,调用 rgb2gray 函数对抽帧得到的图像进行灰度化处理,将彩色图像转化为灰度图。调用的函数为 frame_gray=rgb2gray( Mapww1);这个函数的功能是将彩色图像转换为灰度图像6。在MATLAB中,函数im2bw()可以实现对图片二值化处理。函数im2bw可以将灰度图转化为二值图,突出主要信息,方便接下来图像的处理。首先要确定一个阈值,阈值的大小是最难确定的,数值过大会过度保留图片信息,比如噪声等;数值过小会丧失图片中的目标信息。使用im2bw函数进行二值图像转化,最关键的就是阈值大小的设置,但是手动设置并不准确。所以在工具箱中有一个graythresh函数,此函数可以得到合适的阈值。处理结果如图2.2所示。图2.2 灰度图转化2.3 图像降噪在图像降噪的工程中需要选择比较合适印刷电路板图片的滤波方式,在相机以及环境光线的影响下,为得到更清晰的图片,将上一步灰度图进行滤波处理,来过滤图片中的噪声,使噪声污染得到缓解。2.3.1 图像降噪算法采集图像的过程中往往会受到例如电子元件的互相干扰、噪声干扰或数模转化等问题的影响,使得到的图像无法达到最终想要的结果,为了方便肉眼观察或者计算机自动识别等,可以对原始图像进行一系列处理,使得最终图像效果得到改善,这就叫做图像增强,本设计涉及到的背景平滑去噪就是其中之一。对于本设计采集到的PCB板图片来说,图片中主要的噪声是椒盐噪声和高斯噪声。椒盐噪声的形成是由于图片的某些像素点的灰度值突变为0或者255;高斯白噪声是图像中常见的一种噪声,这种噪声是因为电子元器件长时间通电加热产生。为达到更好的实验效果,本设计使用的背景平滑去噪的分别采用双边滤波和中值滤波两种方法。(1)双边滤波 双边滤波(Bilateral Filter)是一种把模板和原始图像以一种特定的逻辑关系相结合产生滤波效果的方式,这种方式统称为非线性滤波器。双边滤波在尽量确保细节清晰的基础上,来实现平滑背景和降噪的效果。双边滤波是一种将图像空间临近性和图像相似性结合起来的方法,双边滤波器在滤波的过程中要考虑空间的临近信息,色彩信息和相近灰度值的变化从而达到保留和去噪边缘的目的,同时滤波噪声和平滑背景,保存细节信息。双边滤波将两个高斯滤波器组合在一起,其中一个采用普通的高斯滤波的原理,来负责计算空间临近度的权值;另一个负责计算像素值相似度的权值。在这一步应用的性质是高斯滤波的空间临近性相关性质,将两个权值进行乘积,这两个权值分别是空间邻近性计算得到的权值和像素值相似度计算得到的权值。简单来说,其实就是一个与空间距离有关的高斯函数与一个与灰度距离有关的高斯函数的相乘,与简单的高斯滤波相比能更好的保留图片的边缘性7。空间距离则是指目标像素点和中心点的欧氏距离;目标的像素到中心像素的绝对灰度差值被称为灰度距离。 双边滤波的公式如下,详见式2.1。 (式2.1) 忽略公式2.1后面的部分,看前面的部分详见式2.2,则为高斯低通滤波的类型,p和q分别表示当前想要滤波处理的像素点的位置和p邻近的某一个像素点的位置。高斯滤波低通简单来讲就是当前像素中心的点权重最大,越往四周走相对应的权重值就开始下降,越临近权重值就越大,空间位置离得比较远相应的加权的权重值就比较小,这是所描述的空间临近度的权值,详见图2.3。 (式2.2)图2.3 高斯低通滤波器双边滤波同高斯滤波差距最大的一点在于后边这一项详见式2.3,其同样为一个高斯函数,它表示p点和q点如果灰度值差距很大或者颜色不一样的时候,该权重值就会下降,当p点和q点颜色一样或差距很小的时候就可以取得较大的数值,其实是在做一个非线性的加成,目标像素带点和相邻像素点灰度值差距很大的时候,权重值就会下降;当目标像素带点和相邻像素点灰度值差距很小的时候,权重值就会上升,详见图2.4。 (式2.3)图2.4 像素值相似度的权值的高斯滤波器 最前面的分式详见式2.4,来保证滤波之后的图像的各个像素点的灰度值都处于0到255之间,而不是超过255这个数值。 (式2.4)双边滤波的结果由此可见图2.5,可以保持图像边缘的锐化性。图2.5 双边滤波结果(2)中值滤波中值滤波也是一种非线性滤波,可以在保证图像细节信息完整的基础上,对图像进行背景平滑和降噪,排除异常点和噪音,中值滤波克服了线性滤波器的缺点,比如临域平均法带来的模糊问题,它可以对边缘有一个较好的保留,可以很好的处理脉冲性噪声干扰和一些扫描噪声的干扰。中值滤波在处理信号的时候,信号属于一维矩阵,处理的是一个个存储在计算机中的数字,图像属于二维的数据,图像的数据量要比信号的数据量大。中值滤波就是把应用于信号中的方法很好的借鉴到了图像的处理之中。在一些情况下,图片可以用线性滤波进行处理,在一些图片的去噪上,效果比较好,但是大多数线性滤波为低通滤波器,会在滤波的基础上弱化边缘信息。邻域平均法是线性滤波器,它将平均值赋值给当前像素值,造成了边界的模糊和图像的模糊,同时细节也被削弱了。中值滤波降噪的原理为是用中心像素邻域的中值来取代该中心像素点的值,来消除独立的噪声点8。在一维情况下,设置一个数值作为邻域窗口的大小,这个数值就是窗口内数值的个数,此数值应设置为奇数,方便获取中值。中值滤波是窗口内含有奇数个数值的滑动窗口,将窗口中的数值从大到小排列,中心点值用窗口的中值代替目标值,通过这种方法可以将数值较大的脉冲信号滤除,达到平滑降噪的效果,选用合适长度的窗口就可以在滤波之后既实现平滑降噪的效果又可以保留脉冲信号之间的斜坡和阶跃的部分。输入序列为,窗口长度为n,详见式2.5。 (式 2.5)中值滤波可以从一维的原理推导到二维的原理。对于图像来说,是在二维的情况下进行处理,在图像的像素排列中选择一个窗口,把窗口二维数据从大到小或者相反顺序进行排序,排出的序号取中间的值作为当前的像素值。在三乘三、五乘五、七乘七、九乘九的这几种模板中,中间值的序号分别是5、13、25、41。中值滤波对阶跃性的信号和斜坡信号滤波的时候输入和输出相同,对这两种不产生效果,所以不影响阶跃和斜坡函数。窗口大小为M,对于小于二分之一M的函数收到抑制,三角形函数的顶部变平。此时数字图像中各个点的灰度值用来表示,则中值滤波公式为详见式2.6。 (式2.6) 2.3.2 算法实现进行降噪和背景平滑处理,采用双边滤波的方法,设置双边滤波的半角和双边滤波的标准差的数值大小,在程序中调用双边滤波函数color_bilateral_filter;空间域sigma_c越大,图像越平滑,sigma_c越小,中心点的权值越大,周围点的权值越小,则对图像的降噪效果越小;值域sigma_s的值越大,边缘越模糊,反之则越清晰。并使用uint8进行格式转化再使用rgb2gray进行灰度图转化,结果如图2.6所示。图2.6 双边滤波结果处理已经完成灰度图转化的另一种滤波方法为中值滤波。因为函数medfilt2处理的矩阵应该为二维矩阵,直接读取的抽帧后的彩色图像为三维RGB图像,转化为灰度图像,窗口的大小对滤波的输出值影响很大,所以确定窗口的大小十分重要,通常可以从窗口大小最小的开始进行测试,本设计采用的窗口为5的进行滤波处理。采用的函数medfilt2(frame_gray,5,5)。设置一个五行五列的模板作为滑动模块,消除孤立的噪声点9,结果如图2.7所示。图2.7中值滤波结果为了实现焊盘的清晰提取,本设计采用了两种滤波方法对应两种边缘提取的算子,分别是双边滤波和中值滤波。观察双边滤波结果可以看出,双边滤波处理后的图像,过滤掉了大部分噪音,边缘依旧完整,背景进行了平滑处理。双边滤波可以实现图片细节很好的保存,如果只是使用高斯滤波降噪,就容易造成边缘信息的不完整,简单的高斯滤波无法保护更多的高频细节,所以选用双边滤波的方法进行降噪。双边滤波比高斯滤波多了一个高斯方差,可以减少噪声对边缘信息的影响,保留了边缘附近的像素。但是双边滤波并不是完美的降噪方式,双边滤波在保证边缘的基础上会将部分高频信息进行保留,导致个别高频噪声处理不佳,但是双边滤波是去噪和保留边缘信息最折中的处理方式,同时平衡到了去噪和边缘保留的问题。另一种滤波方法为中值滤波,观察中值滤波的结果可以看出,中值滤波很好的消除了图片中独立的瑕疵点,图像背景清晰,通过摄像机所拍摄并抽帧提取出来的图片主要就是椒盐噪声和高斯噪声,如果图中有像素点被污染了,中值滤波可以用中值代替被污染的像素点的灰度值。缺点是中值滤波普遍只能过滤一些独立的或者是小的噪声,而且计算量比较大不太适合图像的快速处理。3.4 增强处理3.4.1 直方图为使图像处理得到更好的效果,要对图像进行图像增强处理。在了解直方图均衡化之前首先要了解灰度直方图,直方图是用来反应图像中灰度级的出现次数,也是出现的频率,是一个用来统计的数组。它用来对图像的灰度级进行统计,对与八位的位图,整个像素的数值是0到255,0像素或者1像素出现的个数将它们统计出来,就叫做直方图,横坐标为灰度级,一般最大为255,纵坐标是出现的个数,如图2.8所示。图2.8 灰度直方图3.4.2 直方图均衡化图像直方图的灰度级累积分布函数影响着映射函数T的变化,根据该函数对直方图进行修改。灰度直方图是表现图像数据特征的重要方法,能够展现出灰阶出现的频数与相对频数之间的关系。其数学表示式如公式2.7所示。 (式2.7)其中为图像像素数,表示第个灰阶,表示图像中灰阶出现的频数,表示灰阶出现的概率。直方图在灰度级所设定的范围内的分布情况,代表图像的对比度,图像对比度是指在一个图像中最亮的部分和最暗的部分的亮度或者色彩程度的差值。直方图中像素数量集中在很小的范围内,就代表图像的对比度比较低,当图像中像素灰度级及其个数在直方图内分布比较平衡,意味着对比度比较高,在直方图中所有像素在每个灰度级上出现的次数近似相等的时候,此时图像可以反映出来的信息量是最大的。在连续情况状态下,对中的进行变换,将非线性函数转变为均匀概率分布函数,为变换前的归一化灰阶,。为变换函数。为变换后的归一化灰阶,。当满足以下两个条件时,(1)T(r)在区间单调递增,并且;(2)反变换存在,也满足条件(1),则变换后的图像灰阶范围以及灰阶变化顺序与原图一样,详见公式2.8所示。 (式2.8)直方图均衡化并归一化后,有,从而两边取积分详见公式2.9所示。 (式2.9)上式表示是直方图累积分布函数,在单调性上属于非负递增函数。在离散的情况下,当红外数字图像的像素数为、灰阶范围为,可以找到最大灰度等级,令第个灰阶出现的频数为,则第个灰阶出现的概率详见公式2.10所示。 (式2.10)可得直方图均衡变换函数详见公式2.11。 (式2.11) 为归一化灰阶。 可以在MATLAB中,得到图像像素灰度级分布的直方图,使用的函数是imhist。取到图像后,用该函数可以获取直方图,可以下直接显示出图像像素分布情况。如本设计所示,在直方图均衡话处理前,图像整体亮度比较暗,数据分布在比较小的范围内,在较低的区域里,对比度比较低,如图2.9所示。当进行均衡话处理后,图像比较亮如图所示2.10,把它的对比度进行了拉伸。图2.9 未处理前像素分布图2.10 均衡化后像素分布要实现图像的增强,选用不同的方式,突出目标信息,削弱非目标信息,从而达到改善图象质量的效果。在本设计中为了使图像增,使边缘提取达到比较理想的结果,将图片进行均衡化处理。通过直方图均衡化的图像增强方法对图像增强,直方图均衡化使图像的灰度值之间拉开差距,用减少灰度等级为代价,使得直方图提高了图像的对比对度10。在本设计中使用直方图均衡化对滤波后的图像进行图像增强处理,使图片的亮度提高、对比度增强。调用的函数为histeqI2=histeq(b);使灰度扩展到0到255之间,如图2.11。图2.11 直方图均衡化结果原图像通过进行灰度变换,可以让图像变亮。这种方法主要是通过调整原图像像素的分布运用灰度变换函数,实现像素的重新分配,增大较暗的像素值,像素值变大后,图像也就会变亮。这种方式是通过增强对信息的辨别能力,来实现图画的增强,但是该种方法存在一个问题,就是容易造成一些信息的丢失。可是本研究的主要目的是改善图像画质,增强画质,通过这种方法能够达到预期效果,对于信息的丢失的问题可以忽略。3 边缘检测3.1 边缘检测算法在进行图像研究的过程中,一些情况下会要求分离出图像中的一些区域或者一些特征,边缘就是常见要求分离的目标信息之一。边缘是由一条像素带构成,在图像灰度图中,边缘所处像素的灰度值同边缘两侧的灰度值普遍相差较大,叫做灰度值的越变。在理想状态下,边缘两侧到边缘的灰度值变化是垂直状态,由低灰度值直接跃变到高灰度值,或者由高灰度值直接越变为低灰度值。但是在现实状态下,不存在这种状况,边缘灰度值的变化普遍存在于一个斜坡上,即不是灰度值的突然跃变,而是存在递进的。所以得到的图片中边缘是模糊的,灰度值处在一个斜坡上,斜坡的倾斜程度决定了边缘的模糊程度。一开始灰度级到最终灰度级的斜坡长度,决定了边缘的宽窄。在理想的情况下,在给定图像上应用边缘检测,来确定边缘定位和目标像素处于图像的边缘还是图像的暗区。边缘检测的方法可以降低要处理的图像数据,简化工作量。边缘检测可以过滤掉不需要的部分,留下图像的大致框架。但是在一些图像中,边缘检测的结果不尽如人意,提取到的边缘信息会出现不连续的问题,边缘曲线不完整,丢失边缘,从而不能得到比较完整的框架。基于本设计的焊盘的检测,要求使边缘检测算法具有较高的准确性,适合的边缘检测算子可以降低出错率。图像边缘保留了目标的大小,方向,形状等信息。这些边缘信息是元器件图像中重要的特征之处,通常的边缘检测就是检测局部灰度值的导数最大值部分。常用的传统边缘检测的算法有 Robert 算子、Soble 算子、Prewitt 算子等11。本设计使用的边缘提取的两种算法分别为Canny边缘检测和LOG边缘检测。3.3.1 Canny算子边缘检测的主要问题是平衡边缘的增强提取和图像中噪声这两者的关系。在现实状况下,无论在边缘提取前应用哪种滤波方式,图片中都会存在噪声,而噪声和边缘信息都属于高频分量,如果只是差分提取边缘信息,同时也会加重图像中的噪声污染。所以在此之前要进行平滑滤波,减少边缘提取过程中的干扰。在Canny算法中,可以利用高斯一阶导数实现降噪和边缘提取两者的平衡。边缘检测普遍要满足三个标准,第一是不能将非边缘误解为边缘,比如纹理噪声,就会产生伪边缘,好的边缘检测算子就要降低出错率。第二是边缘点定位要准确。第三是要避免双沟边的情况(本来只有一条边,边缘检测出两条边),会带来一定麻烦。边缘检测和边缘定位存在测不准原理,所以要在检测和定位之间寻找平衡,所以要通过算子的大小来控制这个平衡。在Canny算子进行边缘检测之前存在一个前提假设,该前提假设为图像在光滑变换的边缘有可叠加的高斯白噪声,而且不存在角的信息。Canny算子进行边缘检测的基本步骤是,(1)如果直接进行边缘提取会加重图片中噪声的污染,所以先进行平滑去噪,来降低噪声的干扰。首先要通过一个高斯低通滤波器,先对图像进行滤波,先把噪声去除掉,使真正的边缘可以更好的被提取,防止噪声产生伪边缘的情况。模板越大,去噪效果越好,边缘丢失越严重。(2)然后来计算每个像素点的梯度,梯度为矢量,意味着每个像素点上有x方向的差分值和y方向的差分值,像素梯度的幅度则表示为。边缘的角度详见公式3.1。 (式3.1)(3)知道了边缘的角度,将边缘方向分为四种,就可以找到像素梯度方向的临近像素。每一个像素点沿着计算出来的边缘的方向,去检查上下或者左右两个像素点,如果这两个像素点的梯度的幅度值比中间的像素点都大或者都小,这个点就可以保留,有可能是边缘点。如果中间像素点梯度的幅度临近的两个像素点之间,即比一个大,比另一个小这时可以判断这不是一个边缘点。(4)Canny算子应用了两个阈值,当某一个像素点的梯度的幅度,小于第一个阈值(一般认为是两个阈值之间比较小),也可以肯定,这个像素点一定不是一个边缘点。如果当前像素点梯度的幅度值大于最大的阈值,可以肯定该像素点一定是边缘点。若处于两个阈值之间,则通过四联通和八联通来找,该像素点周围的八个点有一个像素点被判定为边缘点,则普遍认为这个点也是边缘点,反则可能为一个孤立的噪点,不考虑它为边缘点。3.3.2 LOG算子拉普拉斯算子是对二维函数进行运算的二阶导数算子,二阶导数算子在两峰之间过零点处来确定图像边缘的位置12。拉普拉斯算子是标量,所以计算时,用一个模板就可以实现,两种常用的拉普拉斯模板如下图2.4。拉普拉斯算子有两种不同的检验模板,但是算子容易丢失图像边缘信息,并且对噪声比较敏感,因为只会使噪声对图像加剧影响13。拉普拉斯算子进行边缘检测的公式如公式3.2所示。 (式3.2)由公式可知拉普拉斯算子是按照微分方式来进行边缘检测的,拉普拉斯算子处理图像对噪声的反应很敏感,在应用拉普拉斯算子之前,要先对图像进行平滑处理和降噪处理,也就是在边缘检测器前先进行高斯卷积。高斯卷积如公式3.3所示。 (式3.3)则原图像和高斯卷积后的结果如公式3.4所示。 (式3.4) 图3.1 两种常用的拉普拉斯模板通常使用高斯低通滤波器来进行平滑去噪。高斯平滑后的图像的Laplacian可以表示为,其中为二维高斯函数。图像平滑后再应用拉普拉斯算子,为公式3.5。 (式3.5)这种由高斯滤波和拉普拉斯微分组成的算子称为LOG算子。它既拥有拉普拉斯锐化这种算子的特点又有高斯平滑算子的特点14。高斯-拉普拉斯算子中间为一个正的数值,该数值四周为负值。由图3.2可见,这个模板的系数相加为零,则在灰度级不变的区域模板响应为零,噪音越少效果越好。图3.2 高斯-拉普拉斯算子3.2 算法实现将去噪后处理后的图片进行直方图均衡化处理,使增强下一步边缘提取效果;边缘检测和边缘提取选择Canny算子和LOG算子,提取后的图像焊盘边缘清晰。3.2.1 Canny算子Canny算子实现边缘检测的步骤是,(1) 要对图像进行高斯滤波,避免伪边缘的产生,使算子将伪边缘作为边缘信息提取出来。(2) 然后计算图像像素的梯度值和方向角度。(3) 将图像在局部中找最大值,然后抑制图像局部部分中不是最大值的元素。(4)使用两个阈值的均衡关系对边缘进行检测和识别。在本设计中,首先对图像进行双边滤波color_bilateral_filter处理、灰度图转化rgb2gray、直方图均衡化histeq进行图像增强,最后使用Canny算子提取焊盘的边缘信息。在MATLAB中在进行边缘检测中,调用了函数edge进行Canny边缘检测,使用Canny边缘检测来提取边缘信息,边缘检测的结果如图3.3。程序代码如下,先进行Canny边缘检测,再输出处理结果,输出细节图如图3.4所示。BW5=edge(I2,'canny'); figure,imshow(BW5); 图3.3 Canny算子边缘检测图3