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
    +关注

    关注

    28

    文章

    1351

    浏览量

    110091
  • 滤波算法
    +关注

    关注

    2

    文章

    89

    浏览量

    13723
  • 二值图像
    +关注

    关注

    0

    文章

    14

    浏览量

    8735

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

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

收藏 人收藏

    评论

    相关推荐

    卡尔曼滤波图像处理中的应用实例 如何调优卡尔曼滤波参数

    卡尔曼滤波图像处理中的应用实例 卡尔曼滤波图像处理中主要应用于目标跟踪、噪声消除和图像恢复等方面。以下是一些具体的应用实例: 目标跟踪
    的头像 发表于 12-16 09:11 318次阅读

    图像高斯滤波的原理及FPGA实现思路

    (Gaussian Blur),是一种高斯低通滤波。通常这个算法也可以用来模糊图像,提供模糊滤镜。也可以用来过滤自然界的高斯白噪声。 高斯分布(正态分布)是一个常见的连续概率分布,正态分布的数学期望
    的头像 发表于 12-07 09:12 268次阅读
    <b class='flag-5'>图像</b>高斯<b class='flag-5'>滤波</b>的原理及FPGA实现思路

    STM32的ADC采样及各式滤波算法实现

    本文为手把手教学ADC采样及各式滤波算法的教程,本教程的MCU采用STM32F103ZET6。以HAL库的ADC采样函数为基础进行教学,通过各式常见滤波的实验结果进行分析对比,搭配VOFA+工具直观的展示
    的头像 发表于 10-28 10:51 2103次阅读
    STM32的ADC采样及各式<b class='flag-5'>滤波</b><b class='flag-5'>算法</b>实现

    常用的ADC滤波算法有哪些

    ADC(模数转换器)滤波算法在信号处理中起着至关重要的作用,它们能够帮助我们提取出有用的信号,同时滤除噪声和干扰。以下是常用的ADC滤波算法详解,这些
    的头像 发表于 10-08 14:35 381次阅读

    高斯滤波和均值滤波的区别

    。 高斯滤波的核心思想是对图像中的每一个像素点,用其邻域内像素的加权平均灰度来替代该点的灰度,权重由高斯函数决定,距离中心像素点越近的像素点权重越高。 均值
    的头像 发表于 09-29 09:40 656次阅读

    高斯滤波和双边滤波的区别

    思想是对图像中的每一个像素点,用其邻域内像素的加权平均灰度来替代该点的灰度。 高斯滤波的权重由高斯函数决定,距离中心像素点越近的像素点权重越高。 双边
    的头像 发表于 09-29 09:37 412次阅读

    LC滤波器中的Q指的是什么

    和特性。 一、Q的定义 Q,又称品质因数(Quality Factor),是衡量LC滤波器性能的一个重要参数。它表示滤波器在谐振频率处的阻尼程度,
    的头像 发表于 08-21 15:03 2694次阅读

    滤波器的q越大越好吗

    不一定。滤波器的Q,也称为品质因数,是衡量滤波器性能的一个重要参数。它反映了滤波器对信号的筛选能力,
    的头像 发表于 08-21 14:56 1245次阅读

    滤波电容耐压太高有什么影响

    滤波电容是电子电路中常用的一种元件,主要用于滤除电源中的噪声和纹波,保证电路的稳定运行。在设计电路时,选择合适的滤波电容非常重要,其中耐压滤波电容的一个重要参数。如果
    的头像 发表于 08-06 11:18 1166次阅读

    滤波电容电压大好还是小好

    滤波电容是电子电路中非常重要的一个组件,它的作用是平滑电源的输出电压,减少电源噪声,提高电源的稳定性。在设计电路时,选择合适的滤波电容电压是非常重要的。 一、滤波电容的基本概念 1.
    的头像 发表于 08-06 11:16 693次阅读

    基于深度学习的缺陷检测方案

    图像预处理通常包括直方图均衡化、滤波去噪、灰度化、再次滤波几部分,以得到前后景分离的简单化图像
    发表于 04-23 17:23 885次阅读
    基于深度学习的缺陷检测方案

    OpenCV图像卷积与滤波详解

    图像滤波器是一种用于增强或抑制图像中特定特征的工具。它通常是一个小矩阵,定义了如何对图像中的像素进行操作。
    的头像 发表于 03-26 14:57 1573次阅读
    OpenCV<b class='flag-5'>图像</b>卷积与<b class='flag-5'>滤波</b>详解

    中值滤波去除噪声的原理

    中值滤波去除噪声的原理  中值滤波是一种数字图像处理中常用的去噪方法,其原理是通过将每个像素周围邻域内的像素按照大小排序,然后将排序后的中间
    的头像 发表于 03-14 16:54 1809次阅读

    卡尔曼滤波算法c语言实现方法

    卡尔曼滤波(Kalman Filter)是一种用于估计状态的算法,最初由R.E. Kalman在1960年提出。它是一种线性高斯滤波器,常用于处理包含误差噪声的动态系统。卡尔曼滤波
    的头像 发表于 01-17 10:51 2980次阅读

    图像连通区域的标记原理

    给每个连通区域一个唯一的标识符。 连通区域标记是图像分析和图像处理中的一个重要步骤,可以用于图像分割、边缘检测、目标提取、形状描述等应用。在本文中,我们将介绍
    的头像 发表于 01-05 14:28 848次阅读