基于FPGA的灰度形態(tài)學濾波器實現
在形態(tài)算法設計中,結構元素的選擇十分重要,其形狀和尺寸的選擇是能否有效地提取信息的關鍵。一般情況下,結構元素的選擇按照下面原則進行:
(1)結構元素必須在幾何上比原圖像簡單,且有界。
(2)結構元素的凸性非常重要,一般選擇凸性子集。
2 灰度形態(tài)學濾波器的硬件實現
2.1 結構元素選擇及簡化[3]
本文所述形態(tài)學濾波的目的是檢測256×256大小12位灰度圖像f中的弱小目標,選擇3×3大小的扁平結構元素和原始圖像做開操作,其結構為:
2.2 電路原理設計[4][5]
輸入圖像f與結構元素g1腐蝕就是求f中每行相鄰3個象素的灰度最小值。對于1幅靜止圖像,可以采用1個1×3的窗體從圖像第1行第1列開始,自左向右滑動,依次取出窗口內的3個象素灰度值,比較得到灰度最小值并按順序存儲。第1行做完后,再在第2行滑動,直至圖像的最后1行的最后3個象素。存儲后的圖像即為f與g1腐蝕的結果圖像。對于實時串行輸入圖像,只需讓圖像灰度數據流從1×3的窗體通過,取出窗體內的3個象素灰度值,比較后得到的最小值數據流就是腐蝕后的圖像灰度數據。
求3個數的最小值可以先求2個數的較小值,將結果再與第3個數比較即可得到最小值。設計的關鍵是如何利用第1組數據的中間結果快速完成第2組數據的比較。針對圖像是串行輸入流以及FPGA內部資源足夠豐富的特點,設計了二級流水比較器,其邏輯框圖如圖1所示。圖像第1行第1列的灰度值輸入后鎖存到12位的觸發(fā)器,待第2個數據輸入后與之比較,較小值鎖存到中間的12位觸發(fā)器,而第2個數據存儲到左邊的12位觸發(fā)器。當第3個數據輸入后與前2個數據的較小值比較,得到第1組數據的最小值,同時第1組數據中的第2個值作為第2組數據的第1個值,將與第3個數據(第2組數據的第2個值)比較。這樣,圖像數據輸入到1×3腐蝕單元,2個象素周期之后即可得到最小值輸出數據流。
將圖1中的12位鎖存器替換深度為256字節(jié)的FIFO,即可得到1×3腐蝕邏輯框圖。與1×3腐蝕過程類似,f與g1腐蝕的最小值數據流輸入到1×3腐蝕單元,2行延遲時間之后即可得到f與g腐蝕的圖像灰度數據流。
評論