基于FPGA器件的Sobel算法實(shí)現(xiàn)
2.2系統(tǒng)實(shí)體設(shè)計(jì)本文引用地址:http://cafeforensic.com/article/192125.htm
依據(jù)上述設(shè)計(jì)思路,可以設(shè)計(jì)出如圖4所示的邊緣檢測(cè)模塊的頂層實(shí)體。其中START為來(lái)自外界的檢測(cè)啟動(dòng)信號(hào)輸入,用于啟動(dòng)邊緣檢測(cè);CLK為時(shí)鐘信號(hào)輸入,是狀態(tài)機(jī)的驅(qū)動(dòng)時(shí)鐘;數(shù)據(jù)輸入端口P0~P7分別接收像素窗中相應(yīng)像素的8位灰度值;POUT為檢測(cè)結(jié)果灰度輸出,輸出0表示非邊緣像素,輸出255表示邊緣像素;DIR為方向輸出;FINISH為檢測(cè)結(jié)束信號(hào)輸出,用于配合其它模塊協(xié)同工作。
2.3系統(tǒng)行為描述
由于設(shè)計(jì)采用行為建模,因此,系統(tǒng)描述不涉及任何硬件器件以及連接相關(guān),只需在結(jié)構(gòu)體中設(shè)置兩個(gè)進(jìn)程來(lái)描述狀態(tài)機(jī),并定義相關(guān)變量和函數(shù)就可以完成對(duì)此系統(tǒng)的描述。
為描述系統(tǒng)行為,首先應(yīng)定義如下信號(hào):
其中,信號(hào)ST表示狀態(tài)機(jī)狀態(tài);HF、VF、LF、RF分別用于存儲(chǔ)四個(gè)方向?yàn)V波值;MAG存儲(chǔ)依據(jù)四個(gè)濾波值得出的梯度幅度值。
進(jìn)程CHANGESTATE可完整描述狀態(tài)圖中各狀態(tài)間的轉(zhuǎn)移關(guān)系。此進(jìn)程由敏感信號(hào)CLK進(jìn)行驅(qū)動(dòng),并在時(shí)鐘上升沿到來(lái)時(shí),可通過(guò)判斷當(dāng)前狀態(tài)以及相關(guān)轉(zhuǎn)移條件來(lái)確定狀態(tài)機(jī)的次狀態(tài)。其完整的代碼如下:
進(jìn)程STATEBEHAVIOR主要負(fù)責(zé)處理狀態(tài)機(jī)特定狀態(tài)下的行為輸出。此進(jìn)程由狀態(tài)信號(hào)ST作為敏感信號(hào)進(jìn)行驅(qū)動(dòng)。在空閑態(tài)(ST=IDEL)時(shí),系統(tǒng)初始化相應(yīng)輸出;而在濾波態(tài)(ST=FILTER)時(shí),系統(tǒng)則調(diào)用四個(gè)函數(shù)H_FILTER ()、V_FILTER()、L_FILTER()和R_FILTER()并依照Soble算法進(jìn)行濾波計(jì)算;決斷態(tài)(ST=JUDGE)時(shí),則調(diào)用函數(shù)MAGNITUDE ()和PHASE ()來(lái)計(jì)算梯度的大小和方向,并通過(guò)決斷后輸出處理結(jié)果,同時(shí)使檢測(cè)結(jié)束信號(hào)有效(FINISH='1')。其完整代碼如下:
評(píng)論