国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

基于FPGA的圖像直方圖實時顯示

發(fā)布時間:2019-7-12 17:41    發(fā)布者:rousong1989
基于FPGA的圖像直方圖實時顯示
AT7_Xilinx開發(fā)板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
1系統(tǒng)概述
如圖所示,這是整個視頻采集系統(tǒng)的原理框圖。
上電初始,FPGA需要通過IIC接口對CMOS Sensor進行寄存器初始化配置。這些初始化的基本參數(shù),即初始化地址對應的初始化數(shù)據(jù)都存儲在一個預先配置好的FPGA片內(nèi)ROM中。在初始化配置完成后,CMOS Sensor就能夠持續(xù)輸出標準RGB的視頻數(shù)據(jù)流,FPGA通過對其同步信號,如時鐘、行頻和場頻進行檢測,從而從數(shù)據(jù)總線上實時的采集圖像數(shù)據(jù)。MT9V034攝像頭默認初始化數(shù)據(jù)就能輸出正常的視頻流,因此FPGA中實際上未作任何IIC初始化配置。
FPGA內(nèi)部,采集到的視頻數(shù)據(jù)先通過一個FIFO,將原本25MHz頻率下同步的數(shù)據(jù)流轉(zhuǎn)換到50MHz的頻率下。接著將這個數(shù)據(jù)再送入寫DDR3緩存的異步FIFO中,這個FIFO中的數(shù)據(jù)一旦達到一定數(shù)量,就會通過AXI HP0總線寫入DDR3中。與此同時,AXI HP0總線也會讀取DDR3中緩存的圖像數(shù)據(jù),緩存到FIFO中,并最終送往LCD驅(qū)動模塊進行顯示。LCD驅(qū)動模塊不斷的發(fā)出讀圖像數(shù)據(jù)的請求,并驅(qū)動液晶顯示器顯示視頻圖像。
本實例除了前面提到對原始圖像做DDR3緩存和顯示,還會在原始圖像緩存到DDR3之前,會對當前圖像做直方圖統(tǒng)計(以幀為單位做統(tǒng)計),統(tǒng)計后的直方圖結(jié)果做歸一化處理,便于后續(xù)液晶屏顯示的直方圖繪制,歸一化的直方圖結(jié)果取值范圍是0~448,用25610bit數(shù)據(jù)表示,存入雙口RAM中。根據(jù)LCD顯示模塊的請求,從雙口RAM讀取實時圖像的歸一化直方圖統(tǒng)計結(jié)果進行顯示。最終在VGA液晶顯示器上,可以看到左側(cè)圖像是原始的圖像,右側(cè)圖像是經(jīng)過歸一化處理的直方圖圖像。
2直方圖統(tǒng)計與歸一化處理
         工程文件夾at7_img_ex09\at7.srcs\sources_1\new下的histogram_calculation.v模塊實現(xiàn)了圖像的直方圖統(tǒng)計與歸一化處理。該模塊有一個包含6個狀態(tài)的狀態(tài)機,以這個狀態(tài)機為主軸的設(shè)計思路如下:
1上電初始狀態(tài)STATE_IDLE,復位結(jié)束后即進入下一狀態(tài)STATE_HIST
2STATE_HIST狀態(tài)下,進行實時圖像的256級直方圖統(tǒng)計,統(tǒng)計結(jié)果存放在寄存器histogram_cnt[255:0][19:0]中;圖像接收信號i_image_ddr3_frame_end拉高時,切換到下一個狀態(tài)STATE_FMAX
3STATE_FMAX狀態(tài)下,遍歷一遍直方圖統(tǒng)計結(jié)果寄存器histogram_cnt[255:0][19:0],找出最大值存放在寄存器max_histogramcnt[19:0]中;找到最大值后,切換到下一狀態(tài)STATE_CNTC
4STATE_CNTC狀態(tài)下,直接轉(zhuǎn)換到下一個狀態(tài)STATE_OUTP;該狀態(tài)主要為了清零計數(shù)器dlycnt
5STATE_OUTP狀態(tài)下,依次將256個直方圖統(tǒng)計結(jié)果乘以448=256+128+64),作為被除數(shù),實際乘以448是通過3個移位結(jié)果進行累加實現(xiàn)。而max_histogramcnt[19:0]則作為除數(shù),依次輸出256個進行除法歸一化后的直方圖統(tǒng)計結(jié)果(o_image_hc_wren拉高時o_image_hc_wrdb[9:0]有效)。完成后進入下一狀態(tài)STATE_WAIT
6STATE_WAIT狀態(tài)下,直接切換到STATE_IDLE
在第5步進行的歸一化處理,其基本思想是找到256個直方圖統(tǒng)計結(jié)果的最大值,作為歸一化的1(其他值都小于1);而其他結(jié)果都會以此為標準獲取對應的歸一化值;例如最大值若為40000,那么歸一化后為1,某個統(tǒng)計結(jié)果是1000,那么歸一化后是0.025;而實際我們需要將這個歸一化后的直方圖結(jié)果顯示到液晶屏上,液晶屏上我們可以希望最高的直方圖可以取448pix來顯示,那么我們用448乘以歸一化后的結(jié)果即可。
實際液晶屏是720p的驅(qū)動分辨率,最大可以給到720pix的高度,但是因為左側(cè)的原始采集圖像顯示是640*480,為了顯示美觀,我們最好給出一個不超過480pix的最高直方圖高度顯示,而取448其實是考慮到它等于256+128+64,可以不消耗FPGA的乘法器資源,用移位累加來實現(xiàn)。
3 FPGAMatlab協(xié)同仿真驗證3.1 直方圖統(tǒng)計與歸一化結(jié)果仿真
at7_img_ex09\at7.srcs\sources_1\new\testbench文件夾下,測試腳本sim_histogram_calculation.v用于對模塊histogram_calculation.v進行仿真。
Vivado打開at7_img_ex09工程,在Sources面板中,展開Simulation Sources à sim_1,將sim_histogram_calculation.v文件設(shè)置為top module。在Flow Navigator面板中,展開Simulation,點擊Run Simulation,彈出菜單中點擊Run Behavioral Simulation進行仿真。
測試腳本中,讀取at7_img_ex09\at7.sim文件夾下的640*480圖像數(shù)據(jù)image_in_hex.txt(該文件由at7_img_ex09\matlab文件夾下的image_txt_generation.m產(chǎn)生,原始圖像為test.bmp)。一組完整的圖像數(shù)據(jù)經(jīng)過histogram_calculation.v模塊處理后,產(chǎn)生256個歸一化直方圖結(jié)果,寫入到histogram_result.txt文本中(仿真測試結(jié)果位于project\at7_img_ex09\at7.sim\sim_1\behav文件夾下)。
使用at7_img_ex09\matlab文件夾下的draw_histogram_from_FPGA_result.m腳本,可以同時比對MatlabFPGA統(tǒng)計的直方圖輸出結(jié)果。由于FPGA統(tǒng)計結(jié)果是一個歸一化結(jié)果,所有和Matlab實際統(tǒng)計結(jié)果的數(shù)值可能不一樣,但是從比對圖上看,他們的趨勢和分布完全一致。
3.2 圖像與直方圖顯示結(jié)果仿真
at7_img_ex09\at7.srcs\sources_1\new\testbench文件夾下,測試腳本sim_at7.v用于對模塊histogram_calculation.vdual_ram_cache.vlcd_driver.v進行仿真。
Vivado打開at7_img_ex09工程,在Sources面板中,展開Simulation Sources à sim_1,將sim_zstar.v文件設(shè)置為top module。在Flow Navigator面板中,展開Simulation,點擊Run Simulation,彈出菜單中點擊Run Behavioral Simulation進行仿真。
測試腳本中,讀取at7_img_ex09\at7.sim文件夾下的640*480圖像數(shù)據(jù)image_in_hex.txt(該文件由at7_img_ex09\matlab文件夾下的image_txt_generation.m產(chǎn)生,原始圖像為test.bmp)。一組完整的圖像數(shù)據(jù)經(jīng)過histogram_calculation.v模塊處理后,產(chǎn)生256個歸一化直方圖結(jié)果,緩存到dual_ram_cache.v模塊的雙口RAM中,lcd_driver.v模塊根據(jù)顯示驅(qū)動需要,讀取雙口RAM中的數(shù)據(jù),將直方圖顯示在液晶屏的右側(cè)。測試腳本中,根據(jù)lcd_driver.v模塊的顯示驅(qū)動信號,將一幀的顯示圖像寫入到monitor_display_image.txt文本中(仿真測試結(jié)果位于project\at7_img_ex09\at7.sim\sim_1\behav文件夾下)。
使用at7_img_ex09\matlab文件夾下的draw_image_from_FPGA.m腳本,可以打印monitor_display_image.txt文本中輸出的圖像。這就是最終我們的VGA顯示器中將會顯示的界面示意,左側(cè)是原始圖像,右側(cè)是其直方圖分布。可以看到,這個直方圖分布情況和前面Matlab計算出來的也是一致的。
4裝配說明
         如圖所示,這是STAR開發(fā)板和攝像頭轉(zhuǎn)接板、攝像頭模塊、VGA模塊的連接示意圖。SF-AT7開發(fā)板的連接位置也是一樣的。
5板級調(diào)試
         本實例對應at7_img_ex09實例工程,做好裝配連接,上電,將at7_img_ex09\at7.runs\impl_1文件夾下的at7.bit文件燒錄到板子上,可以看到VGA顯示器同時顯示左右兩個圖像,左側(cè)圖像為原始圖像,右側(cè)圖像為直方圖。
         實物效果如下圖所示。
AT7_Xilinx開發(fā)板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
本文地址:http://m.4huy16.com/thread-565842-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Microchip第22屆中國技術(shù)精英年會上海首站開幕
  • Microchip第22屆中國技術(shù)精英年會——采訪篇
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會圓滿收官!
  • 電動兩輪車設(shè)計生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表