印刷电路板的图像分割

PCB设计

2541人已加入

描述

  1 前沿

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

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

  2 算法理论

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  (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)不处理,但这样又会使图像中存在许多细小的噪声,同样统计结果也不够准确。

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

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分