bokee.net

经理人博客

正文 更多文章

印刷电路板的图像分割

印刷电路板的图像分割

信息来源: 网络
1 前沿
阈值分割是图像预处理中关键的步骤,实质是对每一个象素点确定一个阈值,根据阈值决定当前象素是前景还是背景点,目前,已有大量的阈值处理方法,比如全局阈值和局域阈值,是最简单的分割方法,而后者则是把整幅图分成许多子图像,每幅图像分别使用不同的阈值进行分割。

本文分析了文献[1]中的算法,并在此基础上提出了一种改进的自适应阈值选取方法,实践证明,这种方法简单、计算量小、速度快、统计准确,可以适时获取图像的阈值,PCB图像分割的效果非常好,图像分割以后,保证了目标图形的完好无损,图象增强之后,使的开路和短路更加清晰、突出,为以后的图像处理做好了充分的准备工作。

2 算法理论

文献[1]中自适应阈值分割算法:

(1)将图像分成4个子图像;

(2)计算每个字图像的均值;

(3)根据均值设置阈值,阈值只应用在对应的子图像;

(4)根据阈值,对每个子块进行分割。

此算法中,将均值作为子块的阈值。

印刷电路板的灰度分布特征,如图1所示,其具有以下特征:

(1)具有明显的背景峰值和目标峰值;

(2)两个峰值距离较远,而且其间灰度值基本相等,没有明显的波谷;

(3)背景象素点和目标象素点的灰度变化具有连续性,目标边界的灰度是渐变的,不是突变的,如下图所示。

nmousewheel="return bbimg(this)" alt=按此在新窗口浏览图片 src="http://web.pcbinfo.net/mycode/showimg.asp?BoardID=11&filename=2007-3/2007319105026359.jpg" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0>


经实践证明,文献[1]中的算法不适合印刷电路板,分割的效果也不是很好,因为平均灰度不一定是直方图的波谷,而且在PCB的直方图中有很大一部分平坦的区域,甚至为0的灰度级,寻找极小值点比较困难,为了对PCB图像进行准确的分割,需要寻找另外一种有效的方法,注意到,平均灰度值点是在两个峰值之间(即,平均灰度值在背景灰度值和目标灰度值之间),而且靠近于波谷,所以考虑在其领域内寻找极小值点。 为了分割PCB的目标图像,可以先确定出直方图的目标峰,再确定极小值点,然后可以找出背景峰,将极小值点作为分割阈值,在目标峰和背景峰附近选择一个灰度值,分别作为开路、短路增强的阈值,在PCB图像中,但有时目标比较稀疏,但有时比较密集。寻找整个直方图的最大值点比较简单,但是如何确定这个峰值是背景峰还是目标峰,成为问题的关键。

对于一般的PCB图像,其目标(铜线)表现为高灰度,背景表现为低灰度,以下讨论一种可行的阈值搜索方法,如图2所示。

nmousewheel="return bbimg(this)" alt=按此在新窗口浏览图片 src="http://web.pcbinfo.net/mycode/showimg.asp?BoardID=11&filename=2007-3/200731910512584.jpg" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0>


(1)找出最大的一个峰值所对应的灰度值。在全灰度区间[0,255]找出f(H)的最大值,其对应值即为H;

(2)计算图像的平均灰度:

nmousewheel="return bbimg(this)" alt=按此在新窗口浏览图片 src="http://web.pcbinfo.net/mycode/showimg.asp?BoardID=11&filename=2007-3/2007319105154257.jpg" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0>


(3)确定是背景峰还是目标峰:

如果H<Hawe,平均灰度在最大值点的右侧,表明H是背景峰值,记为Hb;

如果H<Hawe,平均灰度在最大值点的左侧,表明H是目标峰值,记为Hf。

(4)选取极小值点,在平均值点的30邻域内,寻找极小值,其对应值即为Hmin。

注:邻域的大小可以根据实际情况自行选定。

(5)确定的第二个峰值点:

如果(3)中找到只是背景峰值Hb,那么在灰度区间[Hmin,255)找出f(H)的最小值,其对应值即为目标峰值点Hf;

如果(3)中找到的是目标峰值Hf,那么在灰度区间[0,Hmin]找出f(H)的最小值,其对应值即为背景峰值点Hb;

(6)以Hmin为阈值,进行图像分割;

在背景峰值Hb右侧附近找出一个灰度级(一般为Hb+10),进行短路增强;

在目标峰值Hf左侧附近找出一个灰度级(一般为Hf-10)进行开路增强。

注:本算法特别适用于直方图的连续的图像,对于不连续的直方图,可以先进行临近插值,将直方图转换成连续图形,即可采用上述方法来确定阈值。

3 实验结果

当图像存在噪声时,通常采取两种做法:

(1)先滤波再做二值化处理,这样原图像将丢失大量的边缘细节信息,使得统计结果不够准确;

(2)不处理,但这样又会使图像中存在许多细小的噪声,同样统计结果也不够准确。

为了保证统计结果的准确性,既不要由于滤波的影响,而使图像的某些边缘丢失,线宽减小,又不可将那些噪声点误当成线条而统计进来,可以采用先二值化再去除噪声的方法。

nmousewheel="return bbimg(this)" alt=按此在新窗口浏览图片 src="http://web.pcbinfo.net/mycode/showimg.asp?BoardID=11&filename=2007-3/2007319105229670.jpg" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0>

本实验中,从摄像机中得到的图像比较清晰,噪声很少,所以对其直接处理。

该实验比较了文献[1]中的算法,结果表明该方法是一张实用性较好的方法,而且快速、简单。


分享到:

上一篇:电子代工行业涨价成风 金属零件价涨幅

下一篇:金属化板板面起泡成因及对策探讨

评论 (0条) 发表评论

抢沙发,第一个发表评论
验证码