闲庭信步使用图像验证平台加速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幅图片。

相关推荐
gaosushexiangji2 小时前
利用sCMOS科学相机测量激光散射强度
大数据·人工智能·数码相机·计算机视觉
JNU freshman5 小时前
计算机视觉速成 之 概述
人工智能·计算机视觉
加油吧zkf7 小时前
Conda虚拟环境管理:从入门到精通的常用命令
图像处理·深度学习·计算机视觉·conda
小宋0018 小时前
使用LLaMA-Factory微调Qwen2.5-VL-3B 的目标检测任务-数据集格式转换(voc 转 ShareGPT)
人工智能·目标检测·计算机视觉
小哥谈8 小时前
论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
小宋0019 小时前
在Ubuntu上安装配置 LLaMA-Factory
ubuntu·计算机视觉
PyAIExplorer9 小时前
图像处理中的边缘填充:原理与实践
图像处理·人工智能
HollowKnightZ10 小时前
论文阅读笔记:VI-Net: Boosting Category-level 6D Object Pose Estimation
人工智能·深度学习·计算机视觉
XINVRY-FPGA10 小时前
XCZU47DR-2FFVG1517I Xilinx FPGA AMD ZynqUltraScale+ RFSoC
人工智能·嵌入式硬件·fpga开发·信息与通信·信号处理·射频工程·fpga
Shilong Wang10 小时前
三维旋转沿轴分解
算法·计算机视觉·机器人