曹力寧 蔡克新 王起飛
摘要:本文描述了通過對(duì)OpenCV的環(huán)境配置,實(shí)現(xiàn)液晶面板對(duì)位MARK標(biāo)的圖像采集、加載和邊緣檢測(cè)等功能,實(shí)現(xiàn)了液晶面板切割的精確對(duì)位,并給出了具體代碼。
關(guān)鍵詞:OpenCV;液晶面板;圖像處理
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)06-0119-02
液晶面板已經(jīng)用于人們?nèi)粘I畹姆椒矫婷?,液晶面板的尺寸也越來越大。通常,我們所說的液晶面板都是從一塊巨大的液晶基板上切割而來的,液晶面板切割精度需達(dá)到0.001mm,才能實(shí)現(xiàn)面板的精確切割,保證切割的良率。在切割時(shí),需要通過CCD查找液晶基板上的對(duì)位MARK標(biāo),來實(shí)現(xiàn)切割刀輪對(duì)液晶面板的精確對(duì)位。與此同時(shí),機(jī)器視覺和圖像處理技術(shù)已經(jīng)廣泛應(yīng)用于工業(yè)技術(shù)、醫(yī)學(xué)治療、軍事航空等各個(gè)領(lǐng)域[1]。由于視頻圖像處理程序的數(shù)據(jù)量大,要求實(shí)時(shí)性等特點(diǎn),如果開發(fā)人員自主開發(fā)程序必定耗費(fèi)大量時(shí)間和精力。所以本文通過OpenCV技術(shù) ,實(shí)現(xiàn)了對(duì)液晶面板上的對(duì)位MARK標(biāo)的精確檢測(cè)。
1 OpenCV簡(jiǎn)介
OpenCV(Open Source Computer Vision Library)是Intel 公司面向應(yīng)用程序開發(fā)者開發(fā)的計(jì)算機(jī)視覺庫(kù)。它簡(jiǎn)單并且方便,由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)可以跨平臺(tái)使用,具有很好的兼容性,提供了大量的圖像和機(jī)器視覺的處理函數(shù),因此極大地方便了圖像處理和視頻技術(shù)的二次開發(fā)[2]。在VC環(huán)境下進(jìn)行程序開發(fā),可以大大縮短開發(fā)周期,節(jié)約開發(fā)的成本。本文使用BFLY-PGE-13S2M-CS相機(jī),GIGE-PCIE2-2P02采集板卡,板卡附帶的二次開發(fā)包(sdk)中提供了用于圖像視頻采集的函數(shù),實(shí)現(xiàn)了精確采集液晶面板上的MARK標(biāo),從而達(dá)到面板的精確定位,MARK標(biāo)識(shí)別的一般步驟如圖1所示。
2 基于OpenCV的液晶面板MARK標(biāo)識(shí)別程序設(shè)計(jì)
2.1 環(huán)境配置
2.2 圖像的加載
不同的圖像,其內(nèi)部的結(jié)構(gòu)也不完全相同,所以通過不同的方法將圖像中的數(shù)據(jù)讀取到計(jì)算機(jī)的內(nèi)存里。OpenCV的API函數(shù)cvLoadImage可以將圖像數(shù)據(jù)從文件中加載進(jìn)來,而且不論加載前圖像是什么類型,加載后它返回的都是一個(gè)指向IplImage結(jié)構(gòu)體的指針,方便了后續(xù)處理。cvLoadImage的函數(shù)原型為:IplImage* cvLoadImage(const char*filename,int flags=CV_LOAD_ IMAGE_COLOR);返回值為一個(gè)指向IplImage結(jié)構(gòu)體的指針。由于圖像數(shù)據(jù)可以當(dāng)作一個(gè)二維矩陣,所以,相應(yīng)的邊緣處理可以當(dāng)作是對(duì)一個(gè)二維矩陣的處理。圖像加載程序如下,圖像加載結(jié)果如圖2所示。
2.3 對(duì)位MARK標(biāo)的圖像邊緣檢測(cè)
對(duì)位MARK標(biāo)的圖像邊緣是MARK標(biāo)上灰度變化最為明顯的地方,其包含了大量的原始圖像信息。邊緣檢測(cè)利用對(duì)位MARK標(biāo)的這個(gè)特點(diǎn),對(duì)圖像的像素點(diǎn)進(jìn)行求微分,從而可以定位邊緣的像素點(diǎn),這些點(diǎn)的灰度值變化比較大,把這些點(diǎn)連接起來,就構(gòu)成了線條,這些線條就是圖像的邊緣。對(duì)位MARK標(biāo)的圖像邊緣檢測(cè)的基本步驟:
(1)濾波。邊緣的檢測(cè)主要通過一階導(dǎo)數(shù)和二階導(dǎo)數(shù)的計(jì)算,但由于可能會(huì)受到噪聲的影響,所以采用濾波器來降低噪聲。
(2)增強(qiáng)。將圖像中灰度值有明顯變化的點(diǎn)突出顯示。這里通過計(jì)算梯度幅值來完成。
(3)檢測(cè)。在對(duì)位MARK標(biāo)的圖像顯示中,有很多梯度幅值較大點(diǎn),但并不是我們要找的邊緣點(diǎn),我們通過閾值化的方法來確定和剔除不需要的點(diǎn)。
(4)定位。精確確定邊緣的位置。
對(duì)位MARK標(biāo)圖像邊緣的確定和提取對(duì)于整個(gè)MARK標(biāo)的識(shí)別和定位是非常重要的。其中,常用的邊緣檢測(cè)的經(jīng)典算子有:Sobel算子、Log算子、和Canny算子等。OpenCV提供了cvSobel函數(shù)和vCanny函數(shù)等進(jìn)行邊緣檢測(cè)。其中,Canny邊緣檢測(cè)算法的特點(diǎn)如下:1)高準(zhǔn)確率;2)定位性好;3)響應(yīng)性小?;谝陨咸攸c(diǎn),本程序使用Canny 邊緣檢測(cè)算法實(shí)現(xiàn)MARK模板的邊緣檢測(cè)。Canny算法步驟如圖3所示,圖4為MARK模板邊緣檢測(cè)結(jié)果。
3 結(jié)語(yǔ)
本文論述了基于 OpenCV圖像處理算法庫(kù)對(duì)于液晶面板的對(duì)位MARK標(biāo)的圖像采集、存儲(chǔ)和邊緣檢測(cè)過程。 使用了采集卡自帶的二次開發(fā)包中的API函數(shù)采集和處理了液晶面板的MARK對(duì)位標(biāo),程序運(yùn)行可靠,易于維護(hù),圖像采集程序已在實(shí)際項(xiàng)目中使用。
參考文獻(xiàn)
[1]馮偉興,梁洪,王臣業(yè).Visual C++數(shù)字圖像模式識(shí)別典型案例詳解[M].機(jī)械工業(yè)出版社,2012.
[2]賈小軍.基于開源計(jì)算機(jī)視覺庫(kù)OpenCV的圖像處理[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(4)276-278.
Abstract:This paper describes the functions of the image collection, loading and edge detection of the LCD panel against the position of MARK by the configuration of the OpenCV environment, and realizes the precise alignment of the LCD panel cutting, and gives the specific code.
Key words:OpenCV; LCD panel; image processing