0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

形态学滤波算法的FPGA硬件实现

FPGA自习室 来源:FPGA自习室 作者:FPGA自习室 2021-03-03 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景介绍

基于二值图像的滤波算法即形态学滤波,在图像目标采集的预处理中经常被使用到,针对不同的使用场景涉及到腐蚀、膨胀、开闭运算等处理。实际使用中对于不同的分辨率大小以及模板窗口大小,都要进行代码的修改去适应不同的场景,特别是模板窗口比较大时,代码改写工作量就很大。因此,为了减少开发时间,本文实现了一个通用的算法IP,只需要修改模板窗口大小和工作模式(腐蚀or膨胀)参数即可,达到“自适应”目的,避免重复低效的工作。

二、形态学滤波原理

形态学滤波由腐蚀和膨胀两种操作组成。首先,腐蚀(Erosion)的核心思想是图像像素之间进行逻辑与运算,简单来说,当一个包含当前像素的结构单元的像素值都为“1”时输出待处理的的目标像素。

若采用窗口实现腐蚀操作,如图2.1所示:

图2.1腐蚀效果示意图

腐蚀的作用:在形态学中的腐蚀可以去除图像中的物体边界点,清除图像中比结构元素小的毛刺或者小突起,此外,结构元素越大,腐蚀的面积就越大。所以,可以使用腐蚀运算操作小区域的非目标区域区分。

膨胀的核心思想是像素之间进行逻辑或运算,也就是说每个输入像素在输出图像中被替换成结构单元的形状。当结构单元中任何一个像素的灰度值为“1”时,那么输出窗口内的像素都为“1”,此时输出待处理的目标像素。公式可以表示为:

若采用窗口实现膨胀操作,如图2.2所示:

图2.2膨胀效果示意图

膨胀的作用:膨胀运算可以填充图像中小于结构元素的孔洞以及图像边缘部分的一些小凹陷。对于目标区域腐蚀后再膨胀操作就是所谓的开运算。对所选定的目标区域先进行膨胀操作然后再进行腐蚀操作就是所谓的闭运算。

三、FPGA硬件实现

形态学滤波算法的FPGA硬件实现原理图,如下图所示。算法的输入输出接口信号采用标准的 VGA时序接口,即行场信号、数据和数据使能信号。算法模板输入参数主要有两个,Win_SIZE 表示窗口大小,WORK_MODE 表示工作在腐蚀还是膨胀模式,根据需要配置自己想要的模板大小和工作模式。

由于行缓存是基于RAM的实现的,本文设计的ram的规格大小是为2048x15,

深度2048 表示支持的最大分辨率,数据位宽为15bit表示支持的最大的模板窗口大小为15x15,也可以根据需要修改ram规格,其他逻辑不需要改动。

最后,需要开运算或者闭运算时,只需要把两个算法IP串联起来,配置不同的参数即可。

四、仿真验证

本节主要搭建一个视频流Modelsim仿真平台,在基于FPGA视频图像算法开发过程中,有必要模拟一个视频时序,用来验证算法,并有效的利用Matlab工具把静态图片“打散”保存到txt文本里,供Modesim读取,然后通过Matalb“复现”处理后的文本。

3x3腐蚀仿真结果:

9x9腐蚀仿真结果:

5x5膨胀仿真结果:

15x15膨胀仿真结果:

原文标题:基于Verilog的“自适应”形态学滤波算法实现

文章出处:【微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22298

    浏览量

    630488
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114165
  • 滤波算法
    +关注

    关注

    2

    文章

    93

    浏览量

    14227

原文标题:基于Verilog的“自适应”形态学滤波算法实现

文章出处:【微信号:FPGA_Study,微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ADC的采样滤波算法利用卡尔曼滤波算法

    ; ADC_OLD_Value = ADC_Value; kalman_adc_old = kalman_adc; return kalman_adc;} 4 如何优化 用以上的代码实现滤波算法,通常要么滞后
    发表于 12-01 07:44

    电能质量在线监测装置突跳异常数据会修吗?

    和平台(如 CETCloud)通常具备以下自动修复功能: 瞬时干扰数据过滤 技术原理 :通过滑动窗口滤波(如 50ms 内数据均值)、形态学滤波(保留波形特征剔除尖峰)等算法,自动识别
    的头像 发表于 11-05 14:07 287次阅读

    复杂的软件算法硬件IP核的实现

    Compiler)将算法编译转化为可综合的 Verilog 文本,进而通过 FPGA硬件实现算法。 1.C to Hardware
    发表于 10-30 07:02

    电能质量在线监测装置异常数据会自动修复吗?

    是详细分析: 一、自动修复的技术实现与适用场景 1. 瞬时干扰数据的实时过滤 算法原理:通过滑动窗口滤波(如 50ms 内数据均值)、形态学滤波
    的头像 发表于 10-15 16:07 164次阅读

    25年11月上海FPGA算法实现与应用技术高级研修分享

    器的设计。   第六章: NCO的算法实现:NCO(数字控制振荡器)是做频率搬移和相位搬移的重要算法,也是数字中频设计常用的设计模块。   第七章: FRM滤波器设计:FRM
    发表于 10-11 11:55

    数据滤波算法的具体实现步骤是怎样的?

      数据滤波算法在电能质量在线监测装置中的具体实现,需围绕 “ 数据采集→预处理→算法执行→参数适配→效果验证→结果输出 ” 的全流程展开,核心是结合装置
    的头像 发表于 10-10 16:45 467次阅读

    【「AI芯片:科技探索与AGI愿景」阅读体验】+神经形态计算、类脑芯片

    AI芯片不仅包括深度细AI加速器,还有另外一个主要列别:类脑芯片。类脑芯片是模拟人脑神经网络架构的芯片。它结合微电子技术和新型神经形态器件,模仿人脑神经系统机选原理进行设计,实现类似人脑的超低
    发表于 09-17 16:43

    基于FPGA实现FOC算法之PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话
    的头像 发表于 07-17 15:21 3139次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>FOC<b class='flag-5'>算法</b>之PWM模块设计

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与
    的头像 发表于 07-10 11:28 4106次阅读
    基于Matlab与<b class='flag-5'>FPGA</b>的双边<b class='flag-5'>滤波</b><b class='flag-5'>算法</b><b class='flag-5'>实现</b>

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 2102次阅读
    基于<b class='flag-5'>FPGA</b>的压缩<b class='flag-5'>算法</b>加速<b class='flag-5'>实现</b>

    火爆开发中 | 开源FPGA硬件板卡,硬件第一期发布

    开源FPGA项目自发布以来,得到了众多开发者的关注,涉及工业、通信、车载等多个行业的100+位工程师报名参与设计,并分为:硬件组、FPGA组、linux组。其中硬件组率先开始启动项目,
    发表于 07-09 13:54

    蓝牙信标RSSI滤波算法

    蓝牙信标RSSI滤波算法‌主要用于处理RSSI值的不稳定性和噪声,以提高距离估计的准确性。RSSI(接收信号强度指示)是蓝牙信标中常用的参数,用于评估设备之间的距离或信号质量。然而,RSSI值的测量
    的头像 发表于 05-12 19:45 781次阅读
    蓝牙信标RSSI<b class='flag-5'>滤波</b><b class='flag-5'>算法</b>

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    ~ 01、数字信号处理的FPGA实现 旨在讲解前端数字信号处理算法的高效实现。首先概述了当前的FPGA技术、器件以及用于设计最先进DSP系
    发表于 04-07 16:41

    硬件好还是软件好?

    硬件好还是软件好? 选择学习硬件还是软件取决于个人兴趣、职业目标以及对不同工作方式的偏好。以下是两者的一些比较,帮助你做出更合适的选择。 学习
    发表于 04-07 15:27

    FPGA上的图像处理算法集成与优化

    、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种
    的头像 发表于 02-14 13:46 1163次阅读
    <b class='flag-5'>FPGA</b>上的图像处理<b class='flag-5'>算法</b>集成与优化