工業(yè)生產(chǎn)的自動(dòng)化系統(tǒng)中,通過計(jì)算機(jī)視覺和子圖像處理技術(shù)來實(shí)現(xiàn)產(chǎn)品的質(zhì)量監(jiān)測(cè)和控制,已逐漸成為一種強(qiáng)有力的應(yīng)用技術(shù)。線陣CCD圖像傳感器應(yīng)用于產(chǎn)品尺寸測(cè)量與非接觸尺寸測(cè)量、分類、條形碼識(shí)別等眾多領(lǐng)域。圖像檢測(cè)技術(shù)具備一個(gè)高速子圖像提取和輸出模塊,采用FPGA-EP3C25F256C8和CCD線陣圖像傳感器RL1024P,實(shí)現(xiàn)線陣CCD圖像檢測(cè)系統(tǒng)中圖像提取和輸出功能。
1 子圖像提取模塊的設(shè)計(jì)
子圖像提取模塊的功能可描述為:采用FPGA器件實(shí)現(xiàn),根據(jù)串行輸入的黑白圖像和同步信號(hào),提取該圖像中設(shè)定尺寸大小的子圖像。假設(shè)輸入圖像大小為i * j,某一像素點(diǎn)的坐標(biāo)位置為(X,Y),要取出子圖像的大小為m * n,則用c 代碼描述為:for(b=0;b
根據(jù)系統(tǒng)設(shè)計(jì)的要求,線陣CCD 圖像采集模塊采用串行的方式輸出1×1024 像素的一行圖像,子圖像提取模塊接收該圖像數(shù)據(jù)、緩沖、再輸出16×16 像素的子圖像。子圖像提取模塊的外部端口,如圖1 所示。主要信號(hào)有:像素同步時(shí)鐘信號(hào)CCD_CLK、像素?cái)?shù)據(jù)CCD_DATA、當(dāng)前輸入像素的坐標(biāo)CCD_ADDR[90] ;另外,N_RST 和SYS_CLK 為系統(tǒng)提供的復(fù)位信號(hào)和處理時(shí)鐘信號(hào)。其中,每個(gè)CCD_CLK 的上升沿出現(xiàn)時(shí)CCD_DATA 像素有效,且該像素所在的位置為CCD_ADDR[90] 值。
為了實(shí)現(xiàn)每個(gè)CCD_CLK 周期內(nèi)均輸出一個(gè)子圖像,SYS_CLK應(yīng)該為CCD_CLK 的10 倍左右。
本文采用“圖像轉(zhuǎn)置緩沖區(qū)”的方法來實(shí)現(xiàn)子圖像提取模塊?!皥D像轉(zhuǎn)置緩沖區(qū)”是一個(gè)按行寫入(更新)、按列讀出的一個(gè)RAM 緩沖區(qū)。在FPGA 內(nèi)部設(shè)置一個(gè)1024 個(gè)單元的RAM 緩沖區(qū),每個(gè)單元的位寬為16bits.線陣CCD 采集模塊輸出的線陣圖像與子圖像的關(guān)系,如圖2 所示。其中,第0 行表示圖像的當(dāng)前行,第N 行為歷史行,每行有1024 個(gè)像素,按照p0 至p1023 的像素順序輸出。假設(shè)當(dāng)前CCD_CLK 輸入的像素為第0行的p16 像素,則其對(duì)應(yīng)的16X16 子圖像為圖中的陰影部分。
“圖像轉(zhuǎn)置緩沖區(qū)”RAM 塊存儲(chǔ)圖像的結(jié)構(gòu),如圖3 所示。