本文轉載自:ZYNQ微信公眾號
圖像在采集和傳輸的過程中,通常會產生噪聲,使圖像質量降低,影響后續處理。因此須對圖像進行一些圖像濾波、圖像增強等預處理。為改善圖像質量,去除噪聲通常會對圖像進行濾波處理 ,這樣既能去除噪聲,又能保持圖像細節。
FPGA圖像處理方法
1、圖像增強
兩大方法:空間域方法和時間域方法(以后再詳述)
2、圖像濾波
(1)平滑空間濾波器
(2)中值濾波算法
3、圖像邊緣檢測
邊緣指圖像局部強度變化最顯著的部分。邊緣主要存在與目標與目標、目標與背景、區域與區域(不同色彩)之間,邊緣檢測是圖像分割、紋理特征和形狀等圖像分析的基礎。
4、圖像目標提取算法
(1)相鄰幀差法
對相鄰的兩幀圖像求差,將圖像中的目標位置和形狀顯示出來,差分后的圖像不為零的即為目標。在兩幀圖像中,灰度值沒有變化的部分被剪掉,主要是背景和一些小部分目標。
由檢出的部分大致可以確定運動目標的位置,但是該方法的確定是當物體的位移較小時,難以確定目標的運動方向并且在目標的內部產生空洞。
(2)光流法
(3)背景幀差法
此方法選取一副圖像作為背景圖像,用采集到的圖像與背景圖像差分,在背景圖像選取合適的時候,能比較準確地分割出目標物體。速度快,易于實現,并能提供完整的運動區域信息。
具體原理圖:
如上圖,首先將背景圖像和當前圖像進行差分,得到兩幅圖像的背景差圖像(從存儲器中提取出亮度分量得到灰度圖像,經過圖像的中值濾波等處理后,進入圖像檢測算法模塊;然后只需將兩幅圖像中對應的像素相減后再取絕對值即可得到背景差圖像),采用直方圖統計的方法來確定圖像的 二值化閾值(閾值一般設定為G分量的平均值),最后對圖像進行二值化處理,提取出目標的輪廓。
求背景差 VHDL代碼實現:
5、注意點
(1)視頻輸入設備的采樣頻率和FPGA的晶振頻率通常不一樣,因此會產生異步時鐘域的問題,因此可以先將采集的圖像數據存入到FIFO中,然后再存進SRAM中。
(2)不同時鐘域之間會產生亞穩態情況:當信號通過兩個時鐘域的交界處時,將會分別由兩個時鐘來控制信號的值,此時如果兩時鐘信號的敏感延非常接近,將出現數據信號不穩定的情況。
圖像數據存儲
從攝像頭采集的數據先進入FIFO緩沖器中,存滿一行的數據后,再由SRAM控制器讀取到SRAM中。注意:采集的視頻圖像數據是隔行掃描的,即先傳奇數場再傳偶數場,為了后續圖像處理的方便操作,須將兩場數據合并為完整的一幀圖像。
具體方法:先將奇數場的數據以隔行的方式存在SRAM中,即奇數場的第一行存在SRAM的第一行,第二行存在SRAM的第三行,與第一行相隔一行的地址空間,直到行數據全都發送完畢,然后開始存放偶數場,第一行放在第二行等等。
內部控制器controller根據異步FIFO的滿空狀態來使能SRAM控制器,當FIFO滿狀態有效空狀態無效時,SRAM開始從FIFO中讀取數據。
使用FIFO的目的:避免亞穩態。由于采集頻率和FPGA的時鐘頻率不同,為異步時序電路。且數據經FIFO后時鐘信號統一為系統時鐘。
異步FIFOzho中包含:寫地址產生,讀地址產生和一個雙口RAM。
審核編輯:何安
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603434
發布評論請先 登錄
相關推薦
評論