发明内容
因此,为了进一步提高SMT领域中存在的如锡膏、焊盘、丝印等印刷检测速度和精度问题,本发明特提供一种物体二维轮廓识别的方法。它利用黑白相机,可以更快的、更真实的还原检测目标的色彩信息,以此来完成检测目标的二维轮廓测量。
为实现上述目的,本发明采取以下技术方案:一种物体二维轮廓识别方法,其特征在于,包括如下步骤:
1)设置一包括黑白采样相机和RGB三色光源的测量装置,黑白采样相机和RGB三色光源的参数预先已标定,并将所述黑白采样相机和RGB三色光源的控制器与计算机连接;在计算机中,根据不同的测量对象,预置有几组匹配的RGB三色光亮度匹配区间,一种测量对象对应一组匹配区间;
2)将测量对象放置在装置下方,使光源能准确照射测量对象,使相机能准确拍摄测量对象;
3)打开红色光源,用相机对测量对象进行拍照,图像存储于计算机中,使计算机获得红色光亮度值;
4)关闭红色光源,打开绿色光源,用相机对测量对象进行拍照,图像存储于计算机中,使计算机获得绿色光亮度值;
5)关闭绿色光源,打开蓝色光源,用相机对测量对象进行拍照,图像存储于计算机中,使计算机获得蓝色光亮度值;
6)利用计算机中的图像处理软件,对以上3)~5)中的三幅黑白图像进行合成处理,获得还原的彩色图像,合成算法是:
Gray=0.299*R+0.587*G+0.114*B
其中R代表红色光源照射下某像素点的亮度值,G代表绿色光源照射下的同一像素点的亮度值,B代表蓝色光源照射下的同一像素点的亮度值,Gray代表合成亮度值,图像中所有像素点集合起来就还原出一彩色图像;
7)将还原出的彩色图像中的各个像素点,与预先设置的各个测量对象的RGB颜色提取范围分别比对,哪一个像素点的合成亮度值落在某一测量对象的RGB颜色提取范围内,就视为这个像素点是符合这个测量对象的一个二维轮廓数据,遍历所有符合这种条件的像素点,就构成这个测量对象的所有二维轮廓数据;
8)将这个测量对象的所有二维轮廓数据用外接多边形法进行包含,这样的外接多边形就是这个测量对象的二维测量轮廓。
一组所述RGB三色光亮度匹配区间中,包含红色光源照射下的亮度值区间、绿色光源照射下的亮度值区间、蓝色光源照射下的亮度值区间。
所述的测量对象RGB颜色提取范围是指一系列像素点的集合,每个像素点的亮度值是由该测量对象的RGB三色光亮度匹配区间的各单色亮度取值计算得到的,计算公式为Gray=0.299*R+0.587*G+0.114*B,其中R代表红色光源照射下某像素点的亮度值,G代表绿色光源照射下的同一像素点的亮度值,B代表蓝色光源照射下的同一像素点的亮度值,Gray代表合成亮度值。
本发明由于采取以上技术方案,其具有以下优点:1、本发明采用黑白相机,提供更快的拍照速度,从而提高整个检测的速度;并且通过三幅黑白图像合成出真实的彩色图像,从而获得更多的数据量,使得检测速度和精度都得到了显著的提升。2、利用本发明方法和装置,可对物体的二维平面轮廓进行准确高速的提取,一旦确定了二维轮廓后,就可以只需测量此二维轮廓范围内的三维数据,而其他区域的三维数据就无需计算,这样计算量就极大减少,速度就极大提高了。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
众所周知,自然界所有的色彩中,存在三种特殊色彩-红绿蓝,我们把它们叫做三原色,或三基色。之所以说它们特殊,是因为有了这三种色彩之后,可以通过适当比例的混合,可获得自然界中人眼可见的所有色彩。而这三种色彩本身,是无法通过其他色彩混合获得的,相当于,他们是自然界所有人眼可见色彩的基础,所以叫三原色或三基色。
对于三原色,有它的特性,即按照特定比例混合这三种色彩,即可以获得白色,也就是说按照这个比例混合红绿蓝三色光,就可以获得白光,而反之白光也可以被分光镜这类的光学器材拆分获得这个比例的红绿蓝三色光。
基于这种光学原理我们可知,当用白光照射物体,并用彩色相机进行拍照时,即可获得真实的彩色照片。这个工作原理就是,白光中的红绿蓝分量,照射到物体上不同底色的区域时,会分别发生不同的反射和散射,而彩色相机通过自带的滤镜分别捕获这三种颜色的反射光和散射光,并通过内部计算获得彩色图像,这就是业界所共知的拜尔滤光法(Bayer filter)。
结合彩色相机的成像原理,我们反其道而行之,将本来是白光的光源,拆解为红绿蓝三色光,而将原本的彩色相机替换为黑白相机,用黑白相机分别捕捉生成三色光源照射同一物体时的黑白图像,如图1、2、3所示是分别用红、绿、蓝光源照射某一PCB板得到的三张黑白图像。因为黑白相机本身只能捕获一路光学特性,就是亮度,而没有色彩的概念,所以只能生成黑白图像,而由于物体表面不同底色的区域,对不同颜色光的反射和散射特性都是不同的(比如红色区域对红光是全反射,而吸收绿光和蓝光),因此,在用三种颜色的光源分别投射时,黑白相机采集到的虽然都是黑白图像,但这三幅图像本身各个地方的亮度是不同的,并且这个亮度,实际上就体现了该点本来的颜色属性。用三原色合成算法,对三幅图像中每个点的亮度值进行合成计算,(公式为:Gray=0.299*R+0.587*G+0.114*B,其中R代表红色光源照射下的亮度值,G代表绿色光源照射下的亮度值,B代表蓝色光源照射下的亮度值,Gray代表合成亮度值),就可以获得该点的亮度参数了,不同的亮度参数,就代表了不同的物体颜色。
本发明基于用三原色光源投射,用黑白相机取像的这种原理,提出一种物体二维轮廓识别的方法,其主要包括如下步骤:
1)设置了包括黑白采样相机和RGB三色光源的测量装置,黑白采样相机和RGB三色光源的参数预先已标定,并将黑白采样相机和RGB三色光源的控制器与计算机连接;在计算机中,根据不同的测量对象(如锡膏、焊盘、丝印等),通过人工编程的方式预置有几组匹配的RGB三色光亮度匹配区间,一种测量对象对应一组匹配区间,根据这个匹配区间,通过公式Gray=0.299*R+0.587*G+0.114*B,就能换算出该测量对象的颜色提取范围。比如,取一组匹配区间:R=100-250,G=10-50,B=10-50,所有符合这组匹配区间的像素点,都定义为红胶(红胶是一种SMT行业常用的生产原料,被涂抹在PCB板上的特定位置,用于粘住元器件防止掉落,它本身呈暗红色),所以像素点的集合也即构成红胶的二维轮廓数据。
再比如,再取一组匹配区间:R=100-200,G=100-150,B=100-150,所有符合这组匹配区间的像素点,都定义为锡膏,像素点的集合也即构成锡膏的二维轮廓数据。
这样,计算机就可以在合成出来的彩色图像中,轻易分辨出哪些地方是红胶,哪些地方是锡膏。
2)将测量对象放置在装置下方,使光源能准确照射测量对象,使相机能准确拍摄测量对象;
3)打开红色光源,用相机对测量对象进行拍照,图像存储于计算机中;
4)关闭红色光源,打开绿色光源,用相机对测量对象进行拍照,图像存储于计算机中;
5)关闭绿色光源,打开蓝色光源,用相机对测量对象进行拍照,图像存储于计算机中;
6)利用计算机中的图像处理软件,对以上3)~5)中的三幅黑白图像进行合成处理,获得还原的彩色图像,合成算法是:
Gray=0.299*R+0.587*G+0.114*B (1)
其中R代表红色光源照射下某像素点的亮度值,G代表绿色光源照射下的亮度值,B代表蓝色光源照射下的亮度值,Gray代表合成亮度值。图像中所有像素点集合起来就还原出一彩色图像。
7)将还原出的彩色图像中的各个像素点,与预先设置的各个测量对象(如锡膏、焊盘、丝印、红胶等)的RGB颜色提取范围分别比对(各个测量对象的颜色提取范围是依据各自预设的RGB三色光亮度匹配区间,通过公式(1)换算出来的)。哪一个像素点的合成亮度值落在某一测量对象的RGB颜色提取范围内(也就是R、G、B三个亮度值分别落在各自的取值区间内),就视为这个像素点是符合这个测量对象的一个二维轮廓数据。遍历所有符合这种条件的像素点,就构成这个测量对象的所有二维轮廓数据。
8)将这个测量对象的所有二维轮廓数据用一个外接多边形都包含进去,这样的外接多边形就是这个测量对象的二维测量轮廓。
下面以一个实施例来说明本发明的优点:
图4~6是为识别PCB板上某一处焊盘、丝印、红胶所拍摄的三幅黑白图像。图4是在红光照射下的图像,其中外围灰色区域是焊盘10,内部白色区域是红胶20和丝印30,但是红胶和丝印区分不清(因为都是白色)。
图5是在绿光照射下的图像,看出外围灰色区域依旧是焊盘10,内部白色区域变黑部分是红胶20,黑色外围出现了亮白色,是丝印30。
图6是在蓝光照射下的图像,看出外围灰色区域依旧是焊盘10,内部白色区域变黑部分是红胶20,黑色外围出现了亮白色,是丝印30,但是较图5拍摄效果不明显。
上述实例是能够通过三幅图像分辨出焊盘、丝印、红胶的情况,是一种满意的情况,但是实际中往往通过三幅图像是区分不出几种待测物的,这种方法就会失效。所以,为了提高适应性,能够清晰识别出各种检测对象,我们对以下三幅图像,采用本发明所设计的方法,合并生成彩色图像,从而可以利用颜色信息,精准的区分出焊盘、红胶和丝印三种测量对象。应用本发明,我们最终提取到红胶轮廓,正如下面第一幅图中焊盘内部的白色区域轮廓所示。