?

基于FPGA 的圖像處理實驗平臺設計*

2023-12-28 02:51林科業黃仕凰
微處理機 2023年6期
關鍵詞:像素點圖像處理按鍵

林科業,黃仕凰

(韓山師范學院物理與電子工程學院,廣東 潮州 521041)

1 引 言

數字圖像處理技術已經廣泛應用到日常生活和工業生產中。傳統的數字圖像處理技術主要是基于PC 軟件平臺的處理方式[1-2]。但PC 軟件平臺由于體積較大、較為笨重等缺陷,帶來了應用上的不便利,移植到到嵌入式開發平臺上是一個不錯的解決辦法。隨著圖像采集設備的更新換代,以及視頻處理技術的發展,采集到的圖像的分辨率、存儲大小以及圖像的處理速度都越來越高[3],這也要求嵌入式平臺圖像處理系統有更可能小的硬件體積和盡可能高的實時性。在眾多的嵌入式平臺中,FPGA 平臺因其處理速度快、處理能力強等特點[4]能夠很好地滿足要求。本研究即采用FPGA 平臺,以模塊化的方式設計圖像處理實驗,讓程序設計更簡便,移植性更好,有助于更快地進行二次開發。

2 FPGA 實驗平臺系統架構

在實驗設計中,FPGA 實驗平臺的外設主要有OV5640 攝像頭、SDRAM 存儲器、按鍵以及VGA 顯示器。OV5640 攝像頭主要用來采集圖像,其感光陣列為:2592×1944pixel(即500 萬像素)[5]。在實驗設計中,采集的圖像像素大小為640×480pixel,幀率能夠達到90f/s。這樣的采樣幀率能夠滿足工業化生產領域圖像快速采集的需求。設計中使用的按鍵,是用來實現圖像處理功能的切換控制。按鍵經過消除抖動后,計算按鍵的有效按下次數,來切換VGA 顯示器顯示的內容。在設計中,考慮到采集設備和顯示設備的頻率不同,需要將經過圖像處理后的圖像存儲到SDRAM 芯片中,再從SDRAM 讀取到VGA 進行顯示。

在FPGA 程序設計中,以模塊化的方式,將程序設計成不同功能的模塊,其系統架構如圖1 所示。在每個不同功能的模塊中都有一個主文件,用于將模塊中的各個程序整合起來;引出較少的端口將更加便于不同模塊之間的信號通信。最后工程的頂層文件再將各個模塊的主文件進行整合調用。模塊化設計思路使整個程序架構層次分明,不同模塊之間的調用更加簡單。

圖1 FPGA 實驗平臺的系統架構圖

由于各外設的時鐘頻率不同,在程序設計中,須用PLL 鎖相環提供時鐘頻率并確保精度。實驗采用的FPGA 開發平臺的工作時鐘頻率是50 MHz。SDRAM 需要用到100 MHz 和相位偏移了180°的100MHz 頻率,皆可通過PLL 鎖相環進行倍頻獲得。OV5640 和VGA 顯示640×480 分辨率的時候,所需工作頻率是25MHz,需要PLL 鎖相環進行分頻。

圖1 中的OV5640 模塊封裝了OV5640 攝像頭工作的驅動程序,以及圖像獲取程序。調用OV5640的主程序就能獲得攝像頭采集到的圖像。OV5640攝像頭的驅動程序的各個寄存器配置和驅動通過I2C 總線來實現。OV5640 攝像頭獲取到的圖像以16位的數據輸出。

采集到的圖像通過圖1 中的圖像模塊進行數字圖處理。在設計中,不同的數字圖像的處理程序,都在這部分模塊中實現。按鍵按下的次數控制數字圖像處理后的結果輸出。各個圖像處理算法又可以封裝成獨立的單元模塊,使用時只需要在主文件調用各個獨立模塊即可。

圖1 中的SDRAM 模塊主要負責SDRAM 芯片的驅動。程序設計中需要對SDRAM 芯片進行初始化、周期性的刷新,以及讀寫控制。將經過圖像處理后的數據存儲到SDRAM 芯片中。需要顯示時,再從SDRAM 中讀取數據到VGA 顯示器進行顯示。

圖1 中的VGA 模塊實現對VGA 顯示驅動。該模塊需要根據顯示的分辨率進行顯示參數的設置。在設計中,VGA 顯示器采用640×480 的分辨率,工作頻率為25MHz。

3 圖像處理模塊設計

實驗設計了6 個圖像處理模塊,分別用來實現圖像的灰度處理、二值化、RGB 到YCbCr 色彩空間的轉化、均值濾波、形態學中的腐蝕和膨脹,以及Sobel 邊沿檢測,總體結構如圖2 所示。每個模塊除了圖像數據的輸入端口有所差異,其他信號的輸入端口都是一致的。每個模塊都是獨立的處理單元,這便于調試,也讓電路設計更為直觀。每個模塊在設計的過程中,需要注意輸入信號和輸出信號的同步,以免造成信號的不同步,導致VGA 顯示上的錯亂。

圖2 圖像處理模塊示意圖

攝像頭OV5640 采集到的圖像是16 位的彩色圖像,紅色、綠色和藍色各占5 位、6 位和5 位[6];根據公式Gray=0.299R+0.587G+0.114B,可將彩色圖像轉換為灰度圖像。在FPGA 實現中,先把RGB 三個分量擴充為8 位的數據,再用一個24 位的中間變量Gray_m 來存儲灰度轉換后的結果[7-8]。由于FPGA對浮點運算需要消耗很多資源,在設計中要對系數進行倍數放大,將除法運算轉換成乘法運算:

RGB 到YCbCr 色彩空間的轉化,則可以根據以下公式:

攝像頭采集的圖像經過灰度轉換后,在灰度值的基礎上設置一個閾值,將灰度圖像轉換成二值圖像。轉換后的二值圖像就可以進行圖像形態學操作。圖像膨脹或圖像腐蝕實驗都是在二值圖像的基礎上進行的圖像處理。

在實驗過程中,圖像的膨脹、腐蝕、均值濾波,以及Sobel 運算,都需要使用RAM 對圖像數據進行緩存,再將圖像與卷積核進行卷積。所以實驗設計采用雙端口RAM。RAM 的存儲深度根據顯示分辨率進行設置。由于VGA 的顯示頻率是640×480,在設置RAM 的存儲深度時設置為640,位寬為8bit。在程序例化時,RAM 寄存器需要例化兩個單位,用于存儲圖像的上一行和前一行數據。RAM 存儲和卷積運算原理如圖3 所示。通過移位的方式,每次將每行的前三個數據取出,再和卷積核進行卷積運算。根據卷積核不同,可進行不同的圖像處理。

圖3 RAM 存儲和卷積運算示意圖

4 實驗結果

實驗設計為使用一個按鍵實現圖像處理功能的切換。按鍵通過消抖動后,根據按鍵被按下的有效次數,能夠很好的控制圖像的不同處理功能的切換。具體切換效果如圖4 所示。

圖4 圖像處理實驗效果

當按鍵按一下時,對圖像進行均值濾波處理,如圖4(a)所示為圖像經過3×3 卷積核均值濾波處理后的結果。實驗的均值濾波是在灰度圖像上進行的,均值濾波后圖像相較原圖像邊沿會更平滑些。

當按鍵按兩下時,對圖像進行Sobel 算法運算,圖4(b)即為Sobel 運算后的效果。原灰度圖像經過Sobel 運算能夠很好地提取圖像的邊沿輪廓。

當按鍵按三下時,對圖像進行RGB 到灰度轉化,如圖4(c)所示?;叶绒D化后,原圖像由原來的16位RGB 彩色圖像變成了8 位的灰度圖像。

當按鍵按四下時,對圖像進行二值化處理,效果如圖4(d)所示。圖像的二值化處理是將原灰度圖像的每個像素點和預定設置的閥值進行比較,得到每個像素點為0 和1 的二值圖像。

當按鍵按五下時,對圖像進行圖像形態學膨脹處理,如圖4(e)。實驗中的膨脹處理需要先對原灰度圖像進行二值化處理;再對每個像素點周圍的8 個像素點進行或運算。

當按鍵按六下時,對圖像進行圖像形態學腐蝕處理,如圖4(f)。實驗中的腐蝕處理也需要先對原灰度圖像進行二值化處理;再對每個像素點周圍的8個像素點進行與運算。

實驗結果表明,FPGA 平臺上能夠很好的實現數字圖像處理的基本功能。所設計的圖像預處理模塊,體現出了較高的靈活性和較快的處理速度。

5 結束語

本研究基于FPGA 平臺,以模塊化思路加以設計。圖像處理實驗圖像預處理模塊具有較強的可移植性,能夠為具體的工程項目開發提供幫助,具有非常好的應用和研究價值。在對數字圖像處理算法的后續研究中,可以在現有的工程架構上進行進一步完善,添加相應的模塊,實現更高階的用法和功能。

猜你喜歡
像素點圖像處理按鍵
基于有限狀態機的按鍵檢測程序設計
基于局部相似性的特征匹配篩選算法
基于圖像處理的機器人精確抓取的設計與實現
機器學習在圖像處理中的應用
基于5×5鄰域像素點相關性的劃痕修復算法
基于canvas的前端數據加密
基于逐像素點深度卷積網絡分割模型的上皮和間質組織分割
一種多方向導光按鍵結構設計
基于圖像處理的定位器坡度計算
Photo Shop通道在圖像處理中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合