手機訪問更快捷
更多流量 更易傳播
隨時掌握行業(yè)動態(tài)
網(wǎng)絡(luò)課堂 行業(yè)直播
PCB圖像的采集是AOI設(shè)備進行檢測的關(guān)鍵步驟之一,采集的圖像信息將會用在以后的圖像處理模塊中。
圖像采集設(shè)備,完成的任務(wù)是將光信號轉(zhuǎn)化成可以記錄的電信號,能完成這類光電轉(zhuǎn)換功能的有CCD(Charge Coupled Device,電荷耦合器件)類器件,CMOS(Complementary Metal-Oxide-Semiconductor,互補金屬氧化物半導體)類設(shè)備和PSD(Position Sensitive Detector,半導體位置敏感檢出器)設(shè)備等。我們設(shè)備選擇CCD作為圖像采集設(shè)備。
CCD類器件相對于CMOS類器件,具有低噪聲和高靈敏度的特點。CCD分為面陣(Area Arrays)型CCD和線陣(Linear Arrays)型CCD,我們采用的是面陣型的。面陣型CCD圖像傳感器由感光區(qū)、信號存儲區(qū)和輸出轉(zhuǎn)移部分組成,感光區(qū)能夠感受對象物體的光源,并轉(zhuǎn)化成電荷,
然后通過移位寄存器輸出電信號。因為CCD是面陣型的,所以需要通過水平和垂直兩個移位寄存器輸出電信號。
輸出的電信號就是CCD采集的圖像信號。
普通的圖像都是由各種的點構(gòu)成的,這些點被稱為像素(pix),這些點的集合就形成了一整幅圖像。對于彩色的圖像有RGB、CMY、YUV、YcbCr幾個系統(tǒng)。RGB是zui常用的彩色系統(tǒng),計算機系統(tǒng)通常使用RGB系統(tǒng),是使用紅色(RED)、綠色(GREEN)和藍色(BLUE)三原色彩疊加得到各種顏色,這三種顏色被分為256級(當然還可以分成更多的級別,如512,1024等),經(jīng)組合可得1600萬種顏色。而CMY為減色系統(tǒng),分別為青色(Cyan)、品紅(Magenta)、黃色(Yellow)三種顏色,CMY系統(tǒng)一般用于印刷工業(yè)。這兩個系統(tǒng)的其對應(yīng)關(guān)系如圖所示。
RGB、CMY關(guān)系圖
從上面的關(guān)系圖中,可以看到白色為(255,255,255),黑色為(0,0,0),這樣從白色到黑色的連線上的點是R=G=B,這些點只有亮度信息,可以成為灰度信號。我們把只含亮度信號,沒有色彩信號的圖像,成為灰度圖,就是我們平時看到黑白照片。
在AOI設(shè)備中使用黑白CCD進行圖像采集,得到的就是灰度圖。這是因為對PCB上的瑕疵只需黑白信號就能表示,而且黑白CCD的解析度也遠較彩色CCD高,同樣面積的CCD靶面上,黑白圖像的解析度是彩色圖像的三倍以上。這樣,我們以后提到的任何圖像信號都是灰度的黑白圖像。
從上述的描述可以得知,對于一個灰度點,可以有三個元素(x,y,D)來表示,其中x和y為該點的平面坐標,D為該點的灰度值,在0到255之間.這樣,一幅數(shù)字圖像是一個二維的陣列,陣列元素值被稱為灰度值(亮度值)。對于陣列中的任意一個像素的可以用如下公式表示:
f (x y)=D(x y)
x,y表示點的坐標,D表示這一點的灰度值。我們采集的圖像通常用這種方式來存儲的。
圖像的計算方式是以像素(pix)來計算的,pix的換算關(guān)系為1mm=48pixes。我們設(shè)備采用的CCD攝像頭,采集到的一幀(frame)圖像的像素為4008pix×2672pix。
這樣編程時,對一幀圖像的像素可以有這樣的定義:
#define XAXIS 4008
#define XAXIS 2672
在設(shè)備中工作臺上,要完成一次所有PCB板的圖像采集,共要采集6幀圖像,把這6幀圖像檢測完成后,即完成一次的PCB的檢測流程。
再來看一下,我們從攝像頭里,采集到的圖像信號是怎樣的格式。從攝像頭里,讀取到的圖像結(jié)構(gòu)為C鋤eraData幸bu膿,這是一個線性存儲的圖像單元。我們在一幀圖像中座標(x,y)處的像素點的灰度值D,可以用公式來得到:
D=buffer[x+y*XAXIS]
了解圖像像素的存儲結(jié)構(gòu)后,我們再看一下與圖像采集相關(guān)的結(jié)構(gòu)。
struct Capture{
int i;//X方向的位移
int j;//Y方向的位移
int rowC;//一幀圖像的總的行數(shù)
int colC;//一幀圖像的總的列數(shù)
int bufferNo;//存儲圖像的緩存編號
CameraData*buffer;//存儲圖像的結(jié)構(gòu)
};
在CCD移動和拍攝時,首先要檢查CCD的幀存儲器里是否有圖像信號可以讀取,用布爾值fcancapture來檢查是否有掃描到的圖像信號,如果有則把圖像的基本信息放入Capture的結(jié)構(gòu)之中。
if (fcancapture){//檢查是否有圖像幀
num=getAvailFrame();//取可用的像素幀數(shù)
if (mum!=0){
Capture cp;//定義Capture類結(jié)構(gòu)cp,并開始給cp的結(jié)構(gòu)賦值
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);//取移動狀態(tài)
Sleep(170);//延時等待CCD曝光
fcanmoveall=true;//恢復移動
fcancapture=false;//停止捕捉下一幀
}
}
采集后得到一幀完整的PCB圖像(4008pix×2672pix)
AOI設(shè)備的圖像采集過程,可以分為硬件的馬達驅(qū)動開發(fā),和圖像讀取的兩個部分;這一章是上一個AOI設(shè)備馬達控制的后續(xù)展開內(nèi)容。
圖像讀取就是從CCD中采集出圖像的灰度信號值,并zui終被存儲在CameraData*buffer的緩沖區(qū)內(nèi)。對于一次采集,我們在工作臺上要采集6幀圖像,為此系統(tǒng)建立一個結(jié)構(gòu)Capture來控制圖像信號的讀取,該結(jié)構(gòu)會控制幀圖像在工作臺上的位置,以及行列信號值。
我們將馬達的驅(qū)動和信號的讀取,這兩部分肯機地結(jié)合起來,就完成了AOI設(shè)備的圖像采集模塊的設(shè)計,并實現(xiàn)了該模塊的功能。
相關(guān)產(chǎn)品
免責聲明
客服熱線: 15267989561
加盟熱線: 15267989561
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機版
Ybzhan公眾號
Ybzhan小程序