PCB图画的收集是AOI设备进行检测的关键步骤之一,收集的图画信息将会用在今后的图画处理模块中。
图画的收集设备
图画收集设备,完结的使命是将光信号转化成能够记载的电信号,能完结这类光电变换功用的有CCD(Charge Coupled Device,电荷耦合器材)类器材,CMOS(Complementary Metal-Oxide-Semiconductor,互补金属氧化物半导体)类设备和PSD(Position Sensitive Detector,半导体方位敏感检出器)设备等。咱们设备选择CCD作为图画收集设备。
CCD类器材相关于CMOS类器材,具有低噪声和高灵敏度的特色。CCD分为面阵(Area Arrays)型CCD和线阵(Linear Arrays)型CCD,咱们选用的是面阵型的。面阵型CCD图画传感器由感光区、信号存储区和输出搬运部分组成,感光区能够感触目标物体的光源,并转化成电荷,然后通过移位寄存器输出电信号。由于CCD是面阵型的,所以需要通过水平缓笔直两个移位寄存器输出电信号。
输出的电信号就是CCD收集的图画信号。
图画体系及灰度图
一般的图画都是由各种的点构成的,这些点被称为像素(pix),这些点的调集就形成了一整幅图画。关于五颜六色的图画有RGB、CMY、YUV、YcbCr几个体系。RGB是最常用的五颜六色体系,核算机体系一般运用RGB体系,是运用红色(RED)、绿色(GREEN)和蓝色(BLUE)三原色彩叠加得到各种色彩,这三种色彩被分为256级(当然还能够分成更多的等级,如512,1024等),经组合可得1600万种色彩。而CMY为减色体系,分别为青色(Cyan)、品红(Magenta)、黄色(Yellow)三种色彩,CMY体系一般用于印刷工业。这两个体系的其对应联系如图所示。
RGB、CMY联系图从上面的联系图中,能够看到白色为(255,255,255),黑色为(0,0,0),这样从白色到黑色的连线上的点是R=G=B,这些点只有亮度信息,能够成为灰度信号。咱们把只含亮度信号,没有色彩信号的图画,成为灰度图,就是咱们平常看到是非照片。
在AOI设备中运用是非CCD进行图画收集,得到的就是灰度图。这是由于对PCB上的瑕疵只需是非信号就能表明,并且是非CCD的解析度也远较五颜六色CCD高,相同面积的CCD靶面上,是非图画的解析度是五颜六色图画的三倍以上。这样,咱们今后说到的任何图画信号都是灰度的是非图画。
从上述的描绘能够得知,关于一个灰度点,能够有三个元素(x,y,D)来表明,其间x和y为该点的平面坐标,D为该点的灰度值,在0到255之间.这样,一幅数字图画是一个二维的阵列,阵列元素值被称为灰度值(亮度值)。关于阵列中的任意一个像素的能够用如下公式表明:
f (x y)=D(x y)
x,y表明点的坐标,D表明这一点的灰度值。咱们收集的图画一般用这种方法来存储的。
图画的收集
图画的核算方法是以像素(pix)来核算的,pix的换算联系为1mm=48pixes。咱们设备选用的CCD摄像头,收集到的一帧(frame)图画的像素为4008pix×2672pix。
这样编程时,对一帧图画的像素能够有这样的界说:
#define XAXIS 4008
#define XAXIS 2672
在设备中作业台上,要完结一次一切PCB板的图画收集,共要收集6帧图画,把这6帧图画检测完结后,即完结一次的PCB的检测流程。
再来看一下,咱们从摄像头里,收集到的图画信号是怎样的格局。从摄像头里,读取到的图画结构为C锄eraData幸bu脓,这是一个线性存储的图画单元。咱们在一帧图画中座标(x,y)处的像素点的灰度值D,能够用公式来得到:
D=buffer[x+y*XAXIS]
了解图画像素的存储结构后,咱们再看一下与图画收集相关的结构。
struct Capture{
int i;//X方向的位移
int j;//Y方向的位移
int rowC;//一幀图画的总的行数
int colC;//一幀图画的总的列数
int bufferNo;//存储图画的缓存编号
CameraData*buffer;//存储图画的结构
};
在CCD移动和拍照时,首先要查看CCD的帧存储器里是否有图画信号能够读取,用布尔值fcancapture来查看是否有扫描到的图画信号,如果有则把图画的基本信息放入Capture的结构之中。
if (fcancapture){//查看是否有图画帧
num=getAvailFrame();//取可用的像素帧数
if (mum!=0){
Capture cp;//界说Capture类结构cp,并开端给cp的结构赋值
cp.buffer=buff[num-1];
cp.bufferNo=num;
cp.i=si;
cp.j=sj;
cp.colC=columnCount;
cp.rowC=rowCount;
cap[num]=cp;
int pxdst=pxd_goSnap(1,num);//取移动状况
Sleep(170);//延时等候CCD曝光
fcanmoveall=true;//康复移动
fcancapture=false;//中止捕捉下一幀
}
}
收集后得到一帧完好的PCB图画(4008pix×2672pix)
aoi设备检测图画的收集和转化小结
AOI设备的图画收集进程,能够分为硬件的马达驱动开发,和图画读取的两个部分;这一章是上一个AOI设备马达操控的后续打开内容。
图画读取就是从CCD中收集出图画的灰度信号值,并最终被存储在CameraData*buffer的缓冲区内。关于一次收集,咱们在作业台上要收集6帧图画,为此体系树立一个结构Capture来操控图画信号的读取,该结构会操控帧图画在作业台上的方位,以及队伍信号值。
咱们将马达的驱动和信号的读取,这两部分肯机地结合起来,就完结了AOI设备的图画收集模块的规划,并完成了该模块的功用。