国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

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

廠商推薦

  • Microchip視頻專區(qū)
  • 想要避免發(fā)生災難,就用MPLAB® SiC電源仿真器!
  • 了解一下Microchip強大的PIC18-Q24 MCU系列
  • 安靜高效的電機控制——這才是正確的方向!
  • 為何選擇集成電平轉換?
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 婷婷综合国产激情在线 | 99久久综合给久久精品 | 欧美人与性动交α欧美精品 | 久久久久久9 | 91最新在线视频 | 色网站在线看 | 网站免费黄 | 草网站| 亚洲狠狠ady亚洲精品大秀 | 四虎毛片 | 一区二区三区四区在线 | 四虎影视永久免费视频观看 | 99r在线| 天堂亚洲国产日韩在线看 | 996热在线视频 | 四虎永久在线精品国产 | 亚洲第一区在线观看 | 亚洲男女在线 | 精品欧美一区二区三区精品久久 | 三级毛片在线免费观看 | 亚洲另类天天更新影院在线观看 | 91天堂视频 | 午夜免费的国产片在线观看 | 99热在线观看 | 亚洲婷婷影院 | 99久久免费精品国产免费高清 | 手机在线看片不卡中文字幕 | 一级做a爰 | 日韩城人免费 | 日本护士在线视频xxxx免费 | 日韩剧情片 | 天天操一操 | 四虎永久网址影院 | 亚洲成人观看 | 一区二区三区视频在线观看 | avtt2015天堂网 | 久久香蕉国产线看观看网站 | 欧美四虎精品二区免费 | 午夜国产大片免费观看 | 亚洲一区在线免费 | 国产一区二区三区免费播放 |