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

相关推荐
2zcode11 小时前
项目文档:基于MATLAB的肺结节自动分割与评估系统的设计与实现
人工智能·计算机视觉·matlab
凡亿卓达方案设计11 小时前
FPGA硬件开发怎么选靠谱方案商?
fpga开发
菜鸟‍12 小时前
【论文学习】MICCAI 2025 || ARSeg:面向不完整文本提示的鲁棒医学图像指代表达分割
图像处理·学习
matlab代码13 小时前
基于Hough变换的道路提示牌检测标记系统【源码50期】
人工智能·计算机视觉·图像标记
Eloudy14 小时前
QSFP28、RoCEv2、RFSoC-4x2 数据传输与器件链路
网络·fpga开发·rocev2
格林威14 小时前
工业相机Chunk功能全解析:图像嵌入时间戳、编码器元数据(附堡盟C#代码)
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
Echo_cy_14 小时前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
搞科研的小刘选手14 小时前
【华中师范大学、华南师范大学联合主办】第五届图像处理、目标检测与跟踪国际学术会议(IPODT 2026)
图像处理·目标检测·跟踪·学术会议·会议推荐
这张生成的图像能检测吗17 小时前
(论文速读)SCNN:用于交通场景理解的空间CNN
人工智能·深度学习·目标检测·计算机视觉·道路线检测
現実君17 小时前
关于MCU下位替换FPGA的经验与方案
单片机·嵌入式硬件·fpga开发