基于FPGA的Sobel邊緣檢測(cè)應(yīng)用
摘 要: 針對(duì)目前數(shù)字圖像處理速度慢的問(wèn)題, 提出了一種基于 FPGA器件的 Sobel 邊緣檢測(cè)實(shí)現(xiàn)方案。Sobel 邊緣檢測(cè)分別在FPGA和MATLAB上仿真實(shí)現(xiàn),仿真結(jié)果表明,該方案可以大幅提高Sobel 邊緣檢測(cè)的速度,并且獲得了很好的邊緣檢測(cè)效果。最后列舉了一個(gè)基于FPGA器件的Sobel邊緣檢測(cè)的應(yīng)用實(shí)例。
關(guān)鍵詞: Sobel; MATLAB;FPGA;邊緣檢測(cè);DE2-70
邊緣檢測(cè)是圖像處理、計(jì)算機(jī)視覺(jué)的基礎(chǔ)內(nèi)容;是圖像分析與識(shí)別的重要環(huán)節(jié);是目標(biāo)檢測(cè)、圖像分割所依賴的重要特征。在 PC機(jī)上,MATLAB是圖像處理的強(qiáng)大工具,如何將成熟的算法轉(zhuǎn)移到嵌入式系統(tǒng)上實(shí)現(xiàn)是急需解決的問(wèn)題。在實(shí)時(shí)圖像處理中,用Sobel算子進(jìn)行物體的邊緣檢測(cè)是經(jīng)常用到的算法, 由于對(duì)處理速度要求較高且算法處理的數(shù)據(jù)量較大,用一般的軟件實(shí)現(xiàn)會(huì)比較慢, 無(wú)法達(dá)到實(shí)時(shí)系統(tǒng)的要求。而使用FPGA芯片, 用硬件實(shí)現(xiàn)對(duì)底層的圖像預(yù)處理可提高圖像處理的速度, 滿足系統(tǒng)實(shí)時(shí)要求。FPGA技術(shù)的關(guān)鍵就是利用強(qiáng)有力的設(shè)計(jì)工具以縮短開(kāi)發(fā)周期,提高器件資源利用率,提供綜合器的選擇(例如在最佳速度和設(shè)計(jì)規(guī)模之間做出選擇)。隨著FPGA 芯片技術(shù)的進(jìn)步, 其價(jià)格逐步降低,而性能迅速增強(qiáng), 這為使用 FPGA 芯片搭建圖像處理平臺(tái)提供了可能[1]。
1 Sobel邊緣檢測(cè)算法
Sobel算法是一種較成熟的微分邊緣檢測(cè)算法,它計(jì)算簡(jiǎn)單,且能產(chǎn)生較好的檢測(cè)效果, 對(duì)噪聲具有平滑作用, 可以提供較為精確的邊緣方向信息[2]。
Sobel 邊緣檢測(cè)算子使用兩個(gè)方向算子(垂直算子和水平算子),如圖1所示。其原理是分別用這兩個(gè)算子對(duì)圖像進(jìn)行卷積運(yùn)算,得到兩個(gè)矩陣,再求這兩個(gè)矩陣對(duì)應(yīng)位置的兩個(gè)數(shù)的均方根,得到一個(gè)新的矩陣,即為灰度圖像矩陣中各個(gè)像素點(diǎn)的梯度值。最后將梯度值與門(mén)限T進(jìn)行比較,當(dāng)梯度值≥T時(shí),規(guī)定該點(diǎn)的灰度值為255,反之為0。