VC++晶片内部缺陷处理+文献综述(8)
时间:2017-02-16 17:02 来源:毕业论文 作者:毕业论文 点击:次
根据上述算法写出的代码见ImageProcessing.cpp文件中的Auto_threshold_detection函数。二值化之后的图片效果如下: 图3.8 原始图像 图3.9 用自动检测出的阈值进行二值化后的图像 用二值化后得到的图像,可以确定晶片内部位置(最大白色区域),在该位置进行缺陷检测。 3.4.4 局部阈值法 以上方法确定的阈值都是对整幅图像适用的,称为全局阈值。但是,当图像上各区域光照强度不一致时,整幅图像就难以使用同一阈值进行分割。这时需要将图像分成一系列子图像,这些子图像可以相互重叠也可以只是相互邻接。每个区域分别选择分割的阈值。由于各个子图像的分割阈值不同,因此在区域交界处可能会出现不连续的现象。克服这种现象的办法是通过对这些子图像的阈值进行线性插值得到对于图像中每一像素进行分割所需的阈值,即得到一幅阈值图像。通过这幅阈值图像对原图像进行二值化。 由于本次课题已获取的图片亮度较均匀,因此局部阈值法很少用到,在此不详细分析和展示效果。 3.4.4 二值化方法小结 通过三种全局阈值分割方法的比较来看,简单阈值分割无疑是最快捷的方法,但需要人工确定阈值,对待检测图像来说很难判定阈值的大小。大津法二值化是一种最常用的全局阈值分割方法,但在本课题中,运行之后的效果并不尽如人意,增加了许多噪点,从而使得无法准确锁定晶片的内部位置。自动阈值法是三种方法中效果最好的,但运行较慢,等待时间长。目前作者未找到更快更有效的阈值分割方法,在今后学习的过程中有待改进。 3.5 边缘的腐蚀算法 3.5.1 形态学简介 形态学,是一种用于几何结构分析和处理的理论与技术,其与集合理论、晶格理论、拓扑学和随机函数紧密相关。可以将用于二值图像的形态学方法称为二值形态学,相应的用于灰度图像的方法称为灰度形态学。 二值形态学的基本思想就是,使用一个简单预定义的形状对图像进行探测,以得出这个形状是怎样和图像中所包含的形状进行匹配的结论。简单的形状,就称为结构元素,其本身也是一个二值图像,即为距离集合或网格。 对于一个二文欧拉距离集合R2,结构元素B可以是一个以原点为中心、半径为r的圆盘;对于一个二文整形网格Z2,结构元素B可以是一个3x3的方形,其内容设置为: B={(-1,-1),(-1,0),(-1,1),(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1)}; 对于一个二文整形网格Z2,结构元素B可以是一个十字形状,即: B={(-1,0),(0,-1),(0,0),(0,1),(1,0)}. 形态学的基本运算包括四种:腐蚀、膨胀、开操作和闭操作。由于在本次课题中只用到了腐蚀操作,所以下面只简单介绍和分析一下腐蚀算法 3.5.2 腐蚀运算 结构元素用B来表示,那么通过B对A的腐蚀可以定义为: 其中,BZ是通过向量z对B的平移,即: 通过B对A的腐蚀也得以表达为: 用f(x)表示一幅图像,b(x)表示结构函数,那么通过b(x)对f(x)的灰度腐蚀就可以定义为: 其中,inf表示下确界,或称为最大的下边界。 本次课题中选用的是十字形模板,其实正方形模板应该是腐蚀效果最好的,但是试验之后发现,由于边缘亮度过高,导致边缘检测后的边线很粗,所以需要腐蚀的边缘较大。此时使用方形模板速度极慢,效率不高。最终采用了十字形模板来进行腐蚀操作,和方形模板相比效率更高,且腐蚀效果也较好。经过腐蚀操作后的晶片二值图像如下: (责任编辑:qin) |