基于FPGA的RGB2YUV、圖像增強、YUV2RGBIP仿真實(shí)例 騰訊鏈接:https://share.weiyun.com/5GQyKKc 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw 提取碼:qr0t ![]() Xilinx的Vivado中集成的圖像增強(Image Enhancement)IP可以有效降低圖像噪聲并增強圖像邊緣。該IP使用了2D濾波方式,可以在達到更好的圖像噪聲抑制同時(shí),保留并增強圖像邊緣。 如圖所示,對于一個(gè)比較經(jīng)典的圖像前端處理,圖像增強常常也是一個(gè)必不可少的步驟。在我們這個(gè)實(shí)例中,我們需要設計一個(gè)右側圖示紅圈內的圖像流處理。即RGB toYCbCr模塊、圖像增強模塊、YCbCrto RGB模塊,這3個(gè)模塊都有可用的IP核。
![]() 圖像增強IP的功能框圖如下所示。該IP輸入和輸出的圖像數據必須為YUV444或YUV422模式;待處理圖像進(jìn)入IP后,首先需要多行緩存,然后分別通過(guò)降噪(Noise Reduction)模塊和邊緣檢測與增強(Edge Map Morphology和Edge Enhance)模塊。完成處理后的圖像再擬合在一塊,最后會(huì )通過(guò)可選的光環(huán)抑制(Anti-halo)和鋸齒消除(Anti-alias)模塊,完成最終圖像輸出。邊緣增強和噪聲抑制實(shí)際上是兩個(gè)完全相反的圖像處理方式,為了保證兩個(gè)模塊能夠更好的實(shí)現增強圖像的效果,在這個(gè)IP中,第一步做的是圖像的形態(tài)檢測(Edge Map Morphology),然后再根據這個(gè)結果,對圖像中需要降噪的部分和邊緣增強的部分分別處理。
![]() 圖像形態(tài)學(xué)檢測是整個(gè)圖像增強的第一步,它用于指示后續需要對圖像進(jìn)行降噪或邊緣增強操作。圖像形態(tài)學(xué)檢測主要包括下面兩步: ①經(jīng)過(guò)二維的FIR濾波器,從水平、垂直以及兩個(gè)對角共4個(gè)維度提取邊緣信息。 ②使用拉長(cháng)、正交的結構單元和形態(tài)學(xué)處理,用于提供清晰的各個(gè)方向邊緣信息。 降噪處理是基于中心像素點(diǎn)以及特定的臨近像素點(diǎn)的濾波實(shí)現的。算法實(shí)現類(lèi)似高斯的定向低通濾波。噪聲門(mén)限由IP核的設置決定。圖像形態(tài)檢測信息標定出的邊緣不會(huì )做任何的降噪處理。
![]() IP核設定的邊緣增強參數決定了邊緣增強的幅度。根據邊緣檢測形態(tài)信息,邊緣增強模塊對標記處的邊緣做拉普拉斯濾波,實(shí)現邊緣增強效果。
![]() 光環(huán)抑制(Anti-halo)和鋸齒消除(Anti-alias)模塊是可選的功能塊。前面進(jìn)行噪聲抑制和邊緣增強后的圖像,可能存在圖像邊緣被放大或抑制的情況。光環(huán)抑制和鋸齒消除,是通過(guò)判斷每個(gè)新的像素值與原圖像的像素值以及鄰近8個(gè)像素值的比較,以判斷其是否需要進(jìn)行相應的處理并實(shí)現圖像的優(yōu)化。 如圖所示,原圖(左側)在圖像增強后可能出現光環(huán)現象(中間),那么經(jīng)過(guò)光環(huán)抑制后圖像(右側)就能夠實(shí)現最優(yōu)化。
![]() 使用at7_img_ex08\matlab文件夾下的Matlab源碼image_txt_generation.m產(chǎn)生作為FPGA仿真輸入的測試圖像數據,存儲在image_in_hex.txt中。FPGA仿真測試后,產(chǎn)生圖像增強數據存儲在FPGA_Enhenchment_Image.txt中,使用Matlab的draw_image_from_FPGA_result.m腳本則可以比對圖像增強前后的效果。
![]() Vivado的IP Catalog中,Video & Image Processing分類(lèi)下,可以看到有很多可用的圖像處理IP核。我們需要用到的RGB toYCbCr、Image Enhancement和YCbCrto RGB這3個(gè)IP核,都在該分類(lèi)下可以找到。
3.1 RGB toYCbCr IP配置![]() Feature配置頁(yè)面中,設置圖像位寬8bit,分辨率為640*480,YUV格式,輸出圖像取值范圍0~255即可。
![]() Custom配置頁(yè)面中,可以看到RGB toYCbCr轉換的基本公式參數。
![]() 配置頁(yè)面很簡(jiǎn)單,設定好圖像位寬8bit,圖像分辨率640*480,圖像噪聲抑制(Image Noise Reduction)水平(取值0~255),圖像邊緣增強(Image Edge Enhancement)水平(取值0~1.0),以及可選的光環(huán)抑制(Halo Suppression)和鋸齒消除(Anti-Alias Filtering)。
![]() Feature配置頁(yè)面中,設置圖像位寬8bit,分辨率為640*480,YUV格式,輸出圖像取值范圍0~255即可。
![]() Custom配置頁(yè)面中,可以看到YCbCr to RGB轉換的基本公式參數。
4FPGA仿真![]() Vivado打開(kāi)zstar_ex70工程,在Sources面板中,展開(kāi)Simulation Sources à sim_1,將at7_image_enhance_sim.v文件設置為top module。點(diǎn)擊Flow Navigator面板的Simulation à Run Simulation打開(kāi)仿真頁(yè)面,matlab產(chǎn)生的原始圖像數據image_in_hex.txt需要放置在at7.sim文件夾下,仿真測試結果位于at7_img_ex08\at7.sim\sim_1\behav文件夾下。 在設定Noise Threshold = 192,Enhancement Strength = 0.0,Halo Suppression = 0.125時(shí),比對圖像如下。
![]() 在設定Noise Threshold = 192,Enhancement Strength = 0.125,Halo Suppression = 0.75時(shí),比對圖像如下。
![]() 在設定Noise Threshold = 192,Enhancement Strength = 1.0,Halo Suppression = 0.75時(shí),比對圖像如下。
![]() AT7_Xilinx開(kāi)發(fā)板(USB3.0+LVDS)資料共享 騰訊鏈接:https://share.weiyun.com/5GQyKKc 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw 提取碼:qr0t |