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

相关推荐
xxy.c3 小时前
基于IMX6ULL的时钟,定时器(EPIT,GPT)
单片机·嵌入式硬件·fpga开发
山烛8 小时前
OpenCV:人脸检测,Haar 级联分类器原理
人工智能·opencv·计算机视觉·人脸检测·harr级联分类器
IT古董8 小时前
【第五章:计算机视觉-项目实战之目标检测实战】2.目标检测实战:中国交通标志检测-(2)中国交通标志检测数据格式转化与读取
算法·目标检测·计算机视觉
eqwaak09 小时前
Python Pillow库详解:图像处理的瑞士军刀
开发语言·图像处理·python·语言模型·pillow
IT古董9 小时前
【第五章:计算机视觉-项目实战之图像分割实战】1.图像分割理论-(1)图像分割基础知识:定义、任务描述、应用场景、标注格式
yolo·目标检测·计算机视觉
风已经起了10 小时前
FPGA学习笔记——图像处理之对比度调节(直方图均衡化)
图像处理·笔记·学习·fpga开发·fpga
吃饭睡觉发paper10 小时前
High precision single-photon object detection via deep neural networks,OE2024
人工智能·目标检测·计算机视觉
周杰伦_Jay10 小时前
【图文详解】强化学习核心框架、数学基础、分类、应用场景
人工智能·科技·算法·机器学习·计算机视觉·分类·数据挖掘
蜉蝣之翼❉11 小时前
图像交互工具:像素矩阵与卷积核可视化分析
图像处理
Monkey的自我迭代11 小时前
背景建模(基于视频,超炫)项目实战!
opencv·计算机视觉·音视频