闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)
图像腐蚀和膨胀属于图像形态学的范畴,原理在上个系列有讲解,我们直接在FPGA上实现。
由于前面设计后了参数化的data_cache3模块,所以图像的腐蚀操作在FPGA上实现非常的简单,我们在\src\erosion文件夹下新建erosion.sv文件,rtl代码实现如下。首先例化data_cache3模块,用来获取3x3区域的图像数据。
根据不同的腐蚀算子,实现了四种图片的腐蚀。腐蚀算法就是对算子对于的数据直接去与即可。
在顶层的top模块中,例化了rgb2ycbcr,binary,erosion模块,对二值化的单bit数据进行腐蚀。
在tb_image_sim文件中的三个initial块如下所示,主要完成图像数据的读写和比对等。
双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。
可以看到在modelsim的Transcript有如下的打印信息,图像测试平台和FPGA硬件仿真的结果一致。
最后打开img文件夹,也可以看到图像测试平台和FPGA硬件仿真的结果是一致的(no_seq*是图像测试平台处理后的图片,seq*是FPGA硬件仿真处理后的结果)。