閑庭信步使用圖像驗證平臺加速FPGA的開發:第六課——測試圖案的FPGA實現

(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程文件請關注知識星球:成工fpga,關注即送200GB學習資料,鏈接已置頂!)

在FPGA的視頻開發中,使用測試圖案能夠加速開發和問題的定位,如果攝像頭還沒到位,可以先使用測試圖案進行算法的開發和驗證;再比如視頻相關的信號線有問題,造成采集的圖像有問題,可以是使用橫條紋,豎條紋,斜條紋等快速的來定位是哪根數據線有問題,一遍快速的修復。

測試圖案,就是在已有的場同步,行同步,數據有效這三個信號的控制下,用測試的數據替換真實的圖像數據,最常見的測試圖案就是黑白條紋和color bar,雖然簡單,但是定位問題非常有效果。本篇除了實現條紋和color bar,還可以放空思維,填充任意的測試圖案。

在test_pattern模塊中,pattern_sel控制產生不同的測試圖案,grid_size控制其它方格的大小,hsync_cnt是每一行中列的計數信號,vsync_cnt是行計數信號,active_in,hsync_in,vsync_in就是數據有效,行同步和場同步信號,hsync_cnt,vsync_cnt,active_in,hsync_in,vsync_in等信號都來自video_ctrl模塊。

可以產生橫條紋,豎條紋,斜條紋,彩條,棋盤,行列計數的乘除,與或異或隨機數等,而且可以是每個操作的任意組合。

不同模式的任意組合,可以產生更多形形色色的圖案。

在頂層的top文件中,例化test_pattern模塊。

在tb_image_sim仿真文件中的第二個initial塊中,保存了圖像測試平臺和FPGA硬件仿真產生的測試圖案。需要注意的一點是,在FPGA的硬件仿真中,不同于圖像測試平臺可以在0時刻任意產生多副圖片,一幀數據的處理時間只能產生一幅圖像,也就是每次frame_done生成一幅圖像,所以這兒用了repeat語句,用來產生TOTAL_NUM副圖像,本例產生了22幅測試圖案。

還有一點需要注意,由于用來存儲圖像數據的seq_r,seq_g,seq_b都是隊列,如果每幀圖像處理完后不清空隊列,數據會繼續往后面寫,save_3chnl_bmp (path_seq,seq_b,seq_g,seq_r)就會生成22幅相同的圖片,所以每生成一幅圖片,就將隊列用delete清空一次。

最后我們雙擊sim文件夾下的top_tb.bat文件,完成系統的自動化仿真。

可以看到在modelsim的Transcript有如下的打印信息,共保存了22幅圖片(從0開始計數)。

打開img文件夾下的nseq文件下,有圖像測試平臺生成的9幅圖片。

打開img文件夾下的seq文件夾,可以看到生成的22幅圖片。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88334.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Solidity——修改狀態變量注意事項和簡單優化建議

你的問題非常關鍵,涉及到 Solidity 合約部署時的初始化 gas 成本 和 運行時的存儲操作 gas 消耗。我們來詳細解答: 🚨 首先,你的代碼是非法的: contract MyContract {uint public myNumber;myNumber 1; // ? 不允許…

2023年全國青少年信息素養大賽Python編程小學組復賽真題+答案解析-海南賽區

2023年全國青少年信息素養大賽Python編程小學組復賽真題+答案解析-海南賽區 編程題 第1題 整數加8 題目描述 輸入一個整數,輸出這個整數加8的結果。 輸入描述 輸入一行一個正整數。 輸出描述 輸出求和的結果。 樣例1 輸入: 5 輸出: 13 題目解析 這是最基礎的輸入輸出與…

Qt基本組件詳解:按鈕、輸入框與容器控件

Qt基本組件詳解:按鈕、輸入框與容器控件目錄 按鈕類組件 QPushButtonQRadioButtonQCheckBox 輸入框組件 QLineEditQTextEdit 容器組件 QGroupBox 綜合應用示例思維導圖總結1. 按鈕類組件 1.1 QPushButton(普通按鈕) 功能:基礎交互…

Unity Universal Render Pipeline/Lit光照材質介紹

文章目錄前言參數介紹1、表面選項1.1 Worflow Mode工作流模式1.2 Surface Type 表面類型1.3 Blending Mode 混合模式1.4 Preserve Specular 保留鏡面光照(高光)1.5 Render Face 渲染面1.6 Alpha Clipping 透明度剪裁1.7 Receive Shadows 是否接收陰影2、…

uni-app ios離線推送,推送后點擊推送的鏈接進入程序后再次回到桌面,無法消除app的角標問題

問題現象: 解決方案: 1、用h5方法清理 h5地址:HTML5 API Reference 廢話不多說上代碼 /*** 清除應用角標(支持iOS和Android)* 使用H5方法清理推送角標*/clearAppBadge() {// #ifdef APP-PLUStry {plus.runtime.setBad…

遷移Oracle SH 示例 schema 到 PostgreSQL

接著上一篇文章:遷移Oracle HR 示例 schema 到 PostgreSQL中,本文做Oracle SH(Sales History)示例 schema的遷移,SH schema比HR schema更大更復雜,本次遷移的重點是: 分區表外部數據加載 使用…

1.1 ARMv8/ARMv9安全擴展

目錄1.1.1 ARM架構安全演進1.1.2 ARMv8安全特性異常級別(EL)安全模型關鍵安全擴展1.1.3 ARMv9安全創新機密計算架構(CCA)增強的隔離機制1.1.4 安全擴展的TF-A支持1.1.5 安全擴展配置示例1.1.1 ARM架構安全演進 ARM架構從v7到v9的安全演進路線: ARMv7:引…

更新用戶隱私協議后還是 ail api scope is not declared in the privacy agreement怎么辦??!

saveImageToPhotosAlbum:fail api scope is not declared in the privacy agreement昨天明明可以了,開了個會出來,又不行了,真要命啊啊啊啊啊啊啊啊啊啊(現在回想起來可能是因為我把發布的那個版本刪了,因為那個只是用來測試用的e…

練習:對象數組 5

定義一個長度為 3 的數組,數組存儲 1~3 名學生對象作為初始數據,學生對象的學號,姓名各不相同。學生的屬性:學號,姓名,年齡。要求 1:再次添加一個學生對象,并在添加的時候進行學號的…

Linux 中的 .bashrc 是什么?配置詳解

如果你使用過 Linux 終端,那么你很可能接觸過 .bashrc 文件。這個功能強大的腳本是個性化命令行環境并使其更高效運行的關鍵。 在本文中,我們將向你介紹這個文件是什么,在哪里可以找到它,以及如何安全地編輯它。你還將學到一些實…

JVM運行時數據區深度解析

💾 JVM運行時數據區深度解析 文章目錄💾 JVM運行時數據區深度解析🎯 引言📚 方法區📋 方法區存儲內容🔄 從永久代到元空間的演進永久代時期(JDK 8之前)元空間時期(JDK 8及…

.NET nupkg包的深度解析與安全防護指南

在.NET開發領域,nupkg包是開發者們不可或缺的工具。它不僅是代碼分發和資源共享的核心載體,還貫穿了開發、構建、部署的全流程。今天,我們將深入探討nupkg包的核心功能、打包發布流程以及安全防護措施,幫助你在.NET開發中更加得心…

Cursor 快速入門指南:從安裝到核心功能

引言 Cursor 是一款融合 AI 能力的現代代碼編輯器,旨在提升開發者的編碼效率。本文將帶您從零開始,快速掌握 Cursor 的完整使用流程 - 包括安裝配置、項目初始化以及核心 AI 功能的應用。 正文 1. 安裝與初始配置 1.1 下載與安裝 Cursor 支持跨平臺…

自然語言處理中probe探測是什么意思。

文章目錄🔹 1. 英文單詞的基本含義(動詞 & 名詞)? 作為動詞(to probe):? 作為名詞(a probe):🔹 2. 不同領域的具體含義🔹 3. 在機器學習/NL…

【記錄】Ubuntu掛載home文件夾到磁盤

問題描述 服務器裝好后,home文件夾一般存放各個用戶的文件,默認的存儲磁盤為系統磁盤,一般比較小,可能幾百G,這對于服務器來講,相當小了,所以需要對home文件夾進行重新調整。 我之前的博文 點擊進入 相關配置在重啟機器后,磁盤配置自動失效,即配置好后,home在大的磁…

【注意避坑】基于Spring AI 開發本地天氣 mcp server,通義靈碼測試MCP server連接不穩定,cherry studio連接報錯

springboot 版本: 3.5.4 cherry studio版本:1.4.7 通義靈碼版本: 2.5.13 文章目錄 問題描述:1. 通義靈碼添加mcp server ,配置測試2. cherry studio工具添加mcp server ,配置測試 項目源代碼:解…

Paimon LSM Tree Compaction 策略

壓縮怎么進行的這里的操作都是KValue,內部有row kind,標記了刪除和插入MergeTreeCompactManager 是 Paimon 中 Merge-Tree 結構壓縮任務的總調度中心。它的核心職責就是監控文件的層級狀態(Levels),并在合適的時機&…

小米路由器3C刷OpenWrt,更換系統/變磚恢復 指南

基礎篇看這里: 小米路由器3C如何安裝OpenWrt官方編譯的ROM - 嗶哩嗶哩 小米路由器 3C 刷入 Breed 和 OpenWrt - Snoopy1866 - 博客園 一、路由器注入 如果按照上面的文章, telnet、ftp一直連接失敗,那么可以嘗試看 這里: 獲取路由器root權…

Spring Boot 項目啟動時按需初始化加載數據

1、新建類,類上添加注解 Component ,該類用于在項目啟動時處理數據加載任務; 2、該類實現 ApplicationRunner 接口,并重寫 run 方法; 3、在重寫的 run 方法里處理數據加載任務; 注意: 有定時加載…

MCP快速入門—快速構建自己的服務器

引言 隨著大語言模型(LLM)技術的快速發展,如何擴展其能力邊界成為開發者關注的重點。MCP(Model Capability Protocol)作為一種協議標準,允許開發者構建自定義服務器來增強LLM的功能。 正文內容 1. MCP核心概念與技術背景 MCP服務器主要提供三種能力類…