当前位置: 首页 > news >正文

闲庭信步使用图像验证平台加速FPGA的开发:第二十八课——图像膨胀的FPGA实现

   (本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)

上篇完成了图像腐蚀的FPGA实现,本篇来完成图像的膨胀。

图像的膨胀和图像的腐蚀操作基本完全一样,不同点就是图像腐蚀是对算子对应的图像数据取与操作,二图像的膨胀是对算子对应的图像数据取或操作。

我们在\src\dilation文件夹下新建dilation.sv文件,rtl代码实现如下。首先例化data_cache3模块,用来获取3x3区域的图像数据。

根据不同的膨胀算子,实现了四种图片的膨胀算法。膨胀算法就是对算子对于的数据直接去或即可

在顶层的top模块中,例化了rgb2ycbcr,binary,dilation模块,对二值化的单bit数据进行膨胀

在tb_image_sim文件中的三个initial块如下所示,主要完成图像数据的读写和比对等。

双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

可以看到在modelsim的Transcript有如下的打印信息,图像测试平台和FPGA硬件仿真的结果一致。

最后打开img文件夹,也可以看到图像测试平台和FPGA硬件仿真的结果是一致的(no_seq*是图像测试平台处理后的图片,seq*是FPGA硬件仿真处理后的结果)。

当然也可以和上课腐蚀的图像对比一下。

大家可能看出来最近的几篇文章都是比较按部就班,以为做相关的工程都是非常简单的事情,其实不是这样的,成工在做每个工程的时候几乎都会遇到一些问题,有些问题会花费很长的时间来定位bug,目前提供的工程都是问题解决后的工程。

比如这个工程,成工刚设计好运行的时候比对结果是这样的,并不是直接比对通过的。

成工通过查看波形一点点的定位,最后发现问题出在data_cache3模块上,如下所示,在每行数据缓存的最后位置会给一个零,用来补零操作,前面之所以没有出问题时因为每个像素数据都是8bit的,而227行补一个8比特的0是没有问题的。但是到了腐蚀和膨胀的时候,每个像素二值化后是1bit,这儿补8bit的零相当于补了8个像素,从而造成错误。

按照如下的方式修改可以解决问题,用参数来控制补零,这样就不会多补。

所以就算大家拿到了代码,也希望自己来设计一遍,因为只有自己亲自设计了,才能对流程和问题有深入的理解。FPGA能力提高的最快方式就是在正确思路的指导下尽量多练,也就是大家常说的持续做正确的事情,早晚会成功的!!!!!!!!!

http://www.lryc.cn/news/595445.html

相关文章:

  • 关于Ajax的学习笔记
  • Linux的相关指令
  • 「日拱一码」034 机器学习——插值处理
  • Unity 脚本生命周期详解与实战分析
  • (十九)深入了解 AVFoundation-编辑:使用 AVMutableVideoComposition 实现视频加水印与图层合成(上)——理论篇
  • iOS 加固工具有哪些?快速发布团队的实战方案
  • RIQ模型时间管理方法详解
  • 工业自动化中的协议转换:RS485转PROFIBUS网关在涡街流量计与S7-300 PLC通信中的应用
  • Swap Face 使用遇到的问题
  • Match宣布2025曼谷发布会,发布“保本”资管新范式,旨在重塑Web3投资规则
  • 20250720问答课题-基于BERT与混合检索问答系统代码解读
  • 企业开发转型 | 前端AI化数字化自动化现状
  • 自动化商品监控:利用淘宝API开发实时价格库存采集接口
  • 【unitrix】 6.11 二进制数字标准化模块(normalize.rs)
  • G7打卡——Semi-Supervised GAN
  • Acrobat JavaScript 中的 `app.response()` 方法
  • 【学习路线】C#企业级开发之路:从基础语法到云原生应用
  • 基于MySQL实现分布式调度系统的选举算法
  • 一文速通《矩阵的特征值和特征向量》
  • Tomcat的部署、单体架构、session会话、spring
  • PostgreSQL高可用架构Repmgr部署流程
  • 计算机网络中:传输层和网络层之间是如何配合的
  • socket编程(UDP)
  • vue2使用v-viewer图片预览:打开页面自动预览,禁止关闭预览,解决在微信浏览器的页面点击事件老是触发预览初始化的问题
  • Linux 721 创建实现镜像的逻辑卷
  • 网络数据分层封装与解封过程的详细说明
  • 讯飞输入法3.0.1742功能简介
  • AI Agent开发学习系列 - langchain之LCEL(3):Prompt+LLM
  • 20250721
  • 【React】npm install报错npm : 无法加载文件 D:\APP\nodejs\npm.ps1,因为在此系统上禁止运行脚本。