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