基于FPGA器件的Sobel算法實(shí)現
2.2系統實(shí)體設計本文引用地址:http://dyxdggzs.com/article/192125.htm
依據上述設計思路,可以設計出如圖4所示的邊緣檢測模塊的頂層實(shí)體。其中START為來(lái)自外界的檢測啟動(dòng)信號輸入,用于啟動(dòng)邊緣檢測;CLK為時(shí)鐘信號輸入,是狀態(tài)機的驅動(dòng)時(shí)鐘;數據輸入端口P0~P7分別接收像素窗中相應像素的8位灰度值;POUT為檢測結果灰度輸出,輸出0表示非邊緣像素,輸出255表示邊緣像素;DIR為方向輸出;FINISH為檢測結束信號輸出,用于配合其它模塊協(xié)同工作。

2.3系統行為描述
由于設計采用行為建模,因此,系統描述不涉及任何硬件器件以及連接相關(guān),只需在結構體中設置兩個(gè)進(jìn)程來(lái)描述狀態(tài)機,并定義相關(guān)變量和函數就可以完成對此系統的描述。
為描述系統行為,首先應定義如下信號:
其中,信號ST表示狀態(tài)機狀態(tài);HF、VF、LF、RF分別用于存儲四個(gè)方向濾波值;MAG存儲依據四個(gè)濾波值得出的梯度幅度值。
進(jìn)程CHANGESTATE可完整描述狀態(tài)圖中各狀態(tài)間的轉移關(guān)系。此進(jìn)程由敏感信號CLK進(jìn)行驅動(dòng),并在時(shí)鐘上升沿到來(lái)時(shí),可通過(guò)判斷當前狀態(tài)以及相關(guān)轉移條件來(lái)確定狀態(tài)機的次狀態(tài)。其完整的代碼如下:
進(jìn)程STATEBEHAVIOR主要負責處理狀態(tài)機特定狀態(tài)下的行為輸出。此進(jìn)程由狀態(tài)信號ST作為敏感信號進(jìn)行驅動(dòng)。在空閑態(tài)(ST=IDEL)時(shí),系統初始化相應輸出;而在濾波態(tài)(ST=FILTER)時(shí),系統則調用四個(gè)函數H_FILTER ()、V_FILTER()、L_FILTER()和R_FILTER()并依照Soble算法進(jìn)行濾波計算;決斷態(tài)(ST=JUDGE)時(shí),則調用函數MAGNITUDE ()和PHASE ()來(lái)計算梯度的大小和方向,并通過(guò)決斷后輸出處理結果,同時(shí)使檢測結束信號有效(FINISH='1')。其完整代碼如下:
評論