拉普拉斯算子的FPGA實現方法
在圖像處理系統中常需要對圖像進行預處理。由于圖像處理的數據量大,對于實時性要求高的系統,采用軟件實現通常難以滿足實時性的要求。Altera的QuartusⅡ作為一種可編程邏輯的設計環境,由于其強大的設計能力和直觀易用的接口,越來越受到數字系統設計者的歡迎。QuartusⅡ支持Altera的IP核,包含了LPM/Megafunctions宏功能模塊庫,設計者只需要選取設置這些功能模塊的相關參數就可以在程序中調用,從而使用戶可以充分利用成熟的模塊,大大簡化了設計的復雜性,加快了設計速度。
拉普拉斯算子是一種重要的圖像增強算子,它是一種各向同性濾波器,即濾波器的響應與濾波器作用圖像的突變方向無關,而且實現簡單,被廣泛用于圖像銳化和高頻增強等算法中。
在此,提出一種使用QuartusⅡ開發環境的Megafunctions功能模塊實現拉普拉斯算子的方案,可以做到實時增強圖像的高頻細節。
1 Laplacian算子
拉普拉斯算子是各向同性線性算子,二元函數f(x,y)的拉普拉斯變換定義為:
基本高通濾波模板中所有系數的和為0,如果在模板所覆蓋的區域內像素的灰度值都相同或者灰度值的變化較為緩慢.則模板的輸出為0或輸出很小。人們常用的高通提升濾波方法,就是將原圖像乘以一個放大因子A,再減去低通濾波圖像。高通提升濾波可以表示為:
高通提升濾波圖像=A×原圖像-低通濾波圖像=(A-1)×原圖像+原圖像-低通濾波圖像=(A-1)×原圖像+高通濾波圖像
即:
式中:當A=1時,高通提升濾波就是基本的高通濾波;當A>1時,部分原圖像被加到高通濾波的結果上,這就恢復了部分高通濾波中丟失的低頻成分。因此,經過高通提升濾波的圖像與原圖像更加相像,同時又對圖像的邊緣進行了增強。
進行模板卷積的主要步驟為:
(1)將模板在圖中漫游,并將模板中心與圖中某個像素位置重合;
(2)將模板上系數與模板下對應像素相乘;
(3)將所有乘積相加;
(4)將和(模板的輸出響應)賦給圖中對應模板中心位置的像素。
當模板遍歷圖像中的每個像素就得到圖像濾波結果。實現Laplacian高通提升濾波的模板如圖1所示。
文獻[2]的實驗證明,使用圖1(a)所示掩模能得到更好的銳化效果,所以在硬件實現時使用該掩模。實驗中取A=1。
2 Laplacian算子的硬件實現及結果
使用Laplacian算子濾波是將模板與圖像做卷積運算,然后將得到的結果取絕對值后,再進行防治溢出(灰度值大于255)處理。所以在用硬件實現Laplacian算子時可分成三個步驟:構造模板;使用模板對圖像進行卷積運算;對卷積后的結果做后處理。
2.1 硬件數據緩存模塊
要想得到3×3的方形模板窗,需要使用數據緩存器,在該設計中,調用宏功能模塊中的Shift register功能模塊就能實現這一功能,十分方便。
Shift register功能模塊,是一個可配置的具有抽頭(taps)輸出的移位寄存器,可實現功能如圖2(b)所示。
以處理大小為256×256的8位灰度圖像為例進行討論。在對移位寄存器進行配置時,shiftin,shiftout設置為8位,3個抽頭。相鄰兩個抽頭相距256。為了方便控制,還需要為該模塊添加時鐘控制信號,如圖2(a)所示。
電源濾波器相關文章:電源濾波器原理
高通濾波器相關文章:高通濾波器原理
評論