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

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

3天内不再提示

基于二值图像的滤波算法即形态学滤波

FPGA开源工作室 来源:FPGA开源工作室 作者:FPGA开源工作室 2021-03-09 11:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景介绍

基于二值图像的滤波算法即形态学滤波,在图像目标采集的预处理中经常被使用到,针对不同的使用场景涉及到腐蚀、膨胀、开闭运算等处理。实际使用中对于不同的分辨率大小以及模板窗口大小,都要进行代码的修改去适应不同的场景,特别是模板窗口比较大时,代码改写工作量就很大。因此,为了减少开发时间,本文实现了一个通用的算法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膨胀仿真结果:

责任编辑:lq

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

    关注

    31

    文章

    1374

    浏览量

    114837
  • 滤波算法
    +关注

    关注

    2

    文章

    97

    浏览量

    14501
  • 二值图像
    +关注

    关注

    0

    文章

    14

    浏览量

    8927

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

文章出处:【微信号:leezym0317,微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何选择合适的贴片电容用于电源滤波

    选择合适的贴片电容用于电源滤波需从 电容、耐压、温度特性、频率响应、封装尺寸、等效串联电阻(ESR)及成本 等核心参数入手,结合具体应用场景进行综合考量。以下是具体选择方法及分析: ​ 一、核心
    的头像 发表于 03-30 16:54 424次阅读
    如何选择合适的贴片电容用于电源<b class='flag-5'>滤波</b>?

    单片机常见的滤波算法

    ;}复制 、中位值滤波法 1、方法: 连续采样N次(N取奇数),把N次采样按大小排列 取中间为本次有效 2、优点: 能有效克服
    发表于 01-28 06:31

    单片机ADC采样算法-中位值平均滤波

    ); printf( "B%drn", val1 ); } } 主程序中循环读取AD口的采样,并将采样通过中位值平均滤波算法进行
    发表于 01-22 06:17

    自适应滤波算法介绍之维纳滤波器的基本原理和应用示例

    前面我们介绍了匹配滤波器,本文将介绍维纳滤波器。首先我们回顾了维纳滤波的主人公Norbert Wiener,然后描述了维纳滤波的基本原理和推导,最后给出一个简单的维纳
    的头像 发表于 01-07 15:22 3754次阅读
    自适应<b class='flag-5'>滤波</b><b class='flag-5'>算法</b>介绍之维纳<b class='flag-5'>滤波</b>器的基本原理和应用示例

    如何选择一个合适的高阶低通滤波

    高阶低通滤波器是一种通过组合多个滤波器级来实现的滤波器,用于抑制高频信号并保留低频信号。从信号处理的角度来看,世界上所有的信号都可以被理解为是一个或者多个或者无穷个不同频率、不同相
    的头像 发表于 12-30 15:37 1474次阅读
    如何选择一个合适的高阶低通<b class='flag-5'>滤波</b>器

    单片机ADC常用十大滤波算法

    new_Value; } 、中位值滤波法 1、方法: 连续采样N次(N取奇数),把N次采样按大小排列 取中间为本次有效 2、
    发表于 12-09 07:44

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

    严重,要么滤波效果不明显,在这里给出两种优化方案。 方案一:在采样与优化相差大于某时采用一阶滞后滤波
    发表于 12-01 07:44

    海绵密度测试仪的数据滤波算法:如何从波动曲线中提取有效

    传感器捕捉信号时混入的电子干扰。这些波动并非真实密度变化,需通过滤波算法提取有效滤波算法
    的头像 发表于 11-25 09:31 473次阅读
    海绵密度测试仪的数据<b class='flag-5'>滤波</b><b class='flag-5'>算法</b>:如何从波动曲线中提取有效<b class='flag-5'>值</b>

    使用Otsu阈值算法将灰度图像

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行化的高效算法,又称“最大类间方差法”。当我们对一个图象进行
    发表于 10-28 06:49

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

      数据滤波算法在电能质量在线监测装置中的具体实现,需围绕 “ 数据采集→预处理→算法执行→参数适配→效果验证→结果输出 ” 的全流程展开,核心是结合装置硬件特性(采样率、ADC 精度)和干扰类型
    的头像 发表于 10-10 16:45 1093次阅读

    哪些数字滤波算法适用于电能质量在线监测装置?

    在电能质量在线监测装置中,数字滤波算法的核心作用是 抑制干扰噪声、提取有效信号(如基波、谐波、暂态分量)、消除测量误差 ,最终确保电压 / 电流的幅、频率、相位、谐波含量及暂态事件(暂升 / 暂降
    的头像 发表于 09-18 11:28 1093次阅读

    高压SVG 高压无功补偿滤波装置

    滤波
    jf_31141196
    发布于 :2025年07月31日 15:01:57

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

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

    粗糙度的滤波是怎么设置的?

    微观不平度的信息。本文将详细探讨粗糙度滤波的设置方法与依据。 滤波原理与类型 表面轮廓包含了形状误差、波纹度和粗糙度等不同尺度的几何特征,滤波的本质是通过数学
    的头像 发表于 07-03 09:46 1229次阅读
    粗糙度的<b class='flag-5'>滤波</b><b class='flag-5'>值</b>是怎么设置的?

    常用的数字滤波算法及其特性

    如何,适用场合是什么样的呢? 一 限幅滤波法(又称程序判断滤波法) 方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新时判断:如果本次与上次
    的头像 发表于 06-18 09:04 1468次阅读