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

闲庭信步使用图像验证平台加速FPGA的开发:第十三课——图像浮雕效果的FPGA实现

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

图像的浮雕效果,就是把所要呈现的图像突起于石头表面,根据凹凸的程度不同从而形成三维的立体感。算法产生浮雕效果原理与之类似,即通过勾画图像的轮廓,并且降低周围的像素值,从而产生一张具有立体感的浮雕效果图片。我们可以通过相邻元素相减的方法得到轮廓与边缘的差,从而获得凹凸的立体感觉。

图像实现浮雕效果的公式就是求出前后两个像素点的差值,然后再加上一个阈值,既|img(i,j)-img(i,j-1)|+threshold

,如果区域比较平坦,值都在threshold附近,而图像变化比较大,结果就好远离threshold,从而形成浮雕的效果。

所以图像浮雕效果的FPGA实现不需要行缓存,只需要对图像数据进行一拍的延时即可。

在\src\emboss文件夹下新建emboss.sv文件,基本功能如下,图像数据延时一个时钟周期,为了避免负数,通过判断前后数据的大小进行减法运算,最后根据sum的值来确定输入的值。

在top文件中,例化了rgb2ycbcr模块和emboss模块,分别获取图像的亮度数据并使用亮度数据进行浮雕效果的实现。

在tb_image_sim文件中的第二个initial块中,将图像测试平台和FPGA硬件仿真的结果保存并比对。

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

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

打开img文件夹,也可以看到图像测试平台和FPGA硬件仿真的结果是一致的。

当然通过设置样式产生pattern产生正负的浮雕效果,如下所示。

其实我们发现,图像浮雕的效果并不是很明显,其实实现图像的浮雕效果还有其它的方法,比如使用多行数据,这就要用到了行缓存,大家如果感兴趣可以自行设计。

http://www.dtcms.com/a/278037.html

相关文章:

  • 语言模型常用的激活函数(Sigmoid ,GeLU ,SwiGLU,GLU,SiLU,Swish)
  • 算法-汽水瓶兑换
  • Spring AI 项目实战(十七):Spring Boot + AI + 通义千问星辰航空智能机票预订系统(附完整源码)
  • 【webrtc】gcc当前可用码率3:x264响应码率改变
  • 系规备考论文:论IT服务部署实施方法
  • 西藏氆氇新生:牦牛绒混搭液态金属的先锋尝试
  • 分布式锁踩坑记:当“防重“变成了“重复“
  • JAVA并发——什么是Java的原子性、可见性和有序性
  • Redis缓存设计与性能优化指南
  • 使用Starrocks替换Clickhouse的理由
  • C++封装、多态、继承
  • 在 Ubuntu 下安装 MySQL 数据库
  • 从文本中 “提取” 商业洞察“DatawhaleAI夏令营”
  • 电路分析基础(02)-电阻电路的等效变换
  • Matlab批量转换1km降水数据为tiff格式
  • 【LeetCode100】--- 5.盛水最多的容器【复习回顾】
  • ssm学习笔记day05
  • QT 多线程 管理串口
  • 《[系统底层攻坚] 张冬〈大话存储终极版〉精读计划启动——存储架构原理深度拆解之旅》-系统性学习笔记(适合小白与IT工作人员)
  • springboot高校竞赛赛事管理系统 计算机毕业设计源码23756
  • Java行为型模式---策略模式
  • 第1章 概 述
  • dll文件缺失解决方法
  • C++——static成员
  • HiPPO: Recurrent Memory with Optimal Polynomial Projections论文精读(逐段解析)
  • QT控件命名简写
  • Linux内核高效之道:Slab分配器与task_struct缓存管理
  • 编译器优化——LLVM IR,零基础入门
  • 学习C++、QT---23(QT中QFileDialog库实现文件选择框打开、保存讲解)
  • 7月13日日记