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

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

3天内不再提示

FPGA中高斯滤波算法的实现

FPGA自习室 来源:疯狂的FPGA 作者:CrazyBingo 2021-10-29 10:59 次阅读

1.高斯滤波算法的实现

前面讲的均值/中值滤波,对于滤波窗口内每个像素的权重都是一样的。但是噪声在图像当中常表现为异常视觉效果的孤立像素点或像素块,那么他必然不是平均分布。

这里先引入一个概念:正态分布:

正态分布是最重要的一种概率分布,相关概念是由德国的数学家和天文学家Moivre在1733年提出的,但由于德国数学家Gauss率先将其用于天文学研究,因此也叫做高斯分布。在正态分布里,认为中间状态是常态,过高和过低都属于少数,因此正态分布具有相当的普遍性,典型的比如我们的身高、寿命、血压、成绩、测量误差等都遵从正太分布。

以中国家庭动态跟踪,抽样掉找自报的身高数据为例,如下是2010年男/女身高分布直方图,近似呈现正态分布。

扯远了,回归正题,我们这里主题就是要处理高斯分布的噪声,与椒盐噪声不同,高斯噪声则是画面上每个点都存在着不同程度的,与当前像素距离成高斯分布的噪声。这里我们继续在前文已经成熟的3*3滑窗方案上,进行高斯算法的讲解,及Matlab&FPGA的实现。

2.高斯滤波算法理论

根据概率论及中心极限定理(MBA智库百科,全球专业中文经管百科)猜想,大部分噪声应该也符合正态分布/高斯分布(高斯白噪声),所以也就有了高斯滤波,及根据正态分布进行权重计算的滤波方法。

我们已经介绍了高斯分布(正态分布),此处我们直接引入高斯分布函数,为一维与二维高斯分布函数,其中σ为高斯分布的强度,σ越大则数据更越分散,反之则越向中心集中分布:

我们首先采用Matlab自带的高斯函数来验证一下结果,σ=1的高斯滤波,可见有一定的模糊效果。图3为5*5的窗口,σ=3的高斯滤波,模糊的强度稍微更大了一点。图4为11*11的窗口,σ=3的高斯滤波,相对5*5窗口,σ=3的滤波,可见扩大扩大窗口后,滤波后模糊程度非常大,可见滤波窗口对滤波的强度影响更大,其次才是σ的大小。

左侧为生成5*5模板的Matlab代码,我们先根据高斯分布的公式生成5*5 的模板。其中11行为原始二维高斯分布的函数,而12行中我已经将常熟去掉,毕竟后续需要归一化,就可以简化公式,得到的高斯权重分布如有图G1所示,为一堆浮点数据。

但是,二维高斯分布并不仅仅在5*5的区间内,权重在5*5之外仍然有分布,只不过我们当前采用5*5的高斯分布,权且认为数据主要分布在5*5之内,因此还需要进一步的归一化,来使得所有权中之和=1,如17-18行所示,得到右边第二个表格数据的模板。

如果在Matlab中实现,此时得到的模板已经可以用于高斯滤波卷积计算。但我们的目标是FPGA实现,因此还需要进一步定点化,这里采用*1024为例,生成最终的5*5的模板如上第三个表格所示。当然最后需要/1024缩放回去,使得结果最终还原到0-255。

为Matlab进行5*5高斯模板卷积的源代码,其中IMG1为原图,IMG2为采用Matlab自带高斯滤波函数在σ=3,5*5窗口下的滤波结果,IMG3为我们手动编写的,根据生成的定点化模板卷积后的结果。

其中在处理5*5卷积时,为了设计的简便,边缘像素采用了复制原值的操作。另外,由于Matlab是浮点运算,在卷积后将数据类型再次转成uint8定点。最后执行生成的结果如下图所示,其中图2为与图3,处理结果几乎一样,我们定点化5*5高斯模板算法成功。

责任编辑:haq

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

    关注

    1626

    文章

    21665

    浏览量

    601799
  • matlab
    +关注

    关注

    182

    文章

    2963

    浏览量

    230147

原文标题:高斯滤波算法之Matlab&FPGA实现

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

收藏 人收藏

    评论

    相关推荐

    基于FPGA实现FIR数字滤波

    。随着现代数字通信系统对于高精度、高处理速度的需求,越来越多的研究转向采用FPGA实现FIR滤波器。而对于FIR滤波器要充分考虑其资源与运行速度的合理优化,各种不同的FIR
    的头像 发表于 11-05 16:26 210次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>FIR数字<b class='flag-5'>滤波</b>器

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

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

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

    高斯滤波和均值滤波在图像处理中都是常用的平滑滤波方法,但它们之间存在一些关键的区别。以下是两者之间的主要区别: 1. 滤波原理
    的头像 发表于 09-29 09:40 463次阅读

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

    高斯滤波和双边滤波在图像处理中都是常用的平滑滤波技术,但它们之间存在一些显著的区别。以下是两者之间的主要区别: 一、基本原理 高斯
    的头像 发表于 09-29 09:37 297次阅读

    高斯滤波的特点有哪些

    高斯滤波作为一种广泛使用的图像处理技术,具有以下几个显著的特点: 平滑性 : 高斯滤波通过卷积操作对图像进行平滑处理,使图像中的高频部分(如噪声、细节纹理)得到抑制,而低频部分(如图像
    的头像 发表于 09-29 09:36 197次阅读

    高斯滤波的卷积核怎么确定

    高斯滤波的卷积核确定主要依赖于高斯函数的特性以及图像处理的具体需求。以下是确定高斯滤波卷积核的几个关键步骤: 一、确定卷积核的大小 卷积核形
    的头像 发表于 09-29 09:29 333次阅读

    高斯滤波的基本原理有哪些

    高斯滤波的基本原理可以从以下几个方面进行阐述: 一、定义与性质 定义 :高斯滤波(Gaussian Filter)是一种常见的图像处理技术,实质上是一种信号的
    的头像 发表于 09-29 09:27 359次阅读

    FPGA设计经验之图像处理

    系列:基于 FPGA 的图像边缘检测系统设计(sobel算法FPGA设计中 Verilog HDL实现基本的图像滤波处理仿真 需
    发表于 06-12 16:26

    FPGA实现什么样的算法

    FPGA功能如此强大,请问用FPGA实现或者比较适合实现什么样的算法
    发表于 05-26 20:18

    基于多速率DA的根升余弦滤波器的FPGA实现

    处理技术和分布式算法FPGA实现技术,使得计算量大幅减少,处理速度得到较大提高,而且使得FPGA资源利用更合理。1、根升余弦滤波器原理与结
    发表于 03-25 14:21

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

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

    怎么用FPGA算法 如何在FPGA实现最大公约数算法

    FPGA算法的优点在于它们可以提供高度的定制化和灵活性,使得算法可以根据实际需求进行优化和调整。此外,FPGA还可以实现硬件加速,提供比传统
    的头像 发表于 01-15 16:03 1997次阅读

    浮点LMS算法FPGA实现

    引言 LMS(最小均方)算法因其收敛速度快及算法实现简单等特点在自适应滤波器、自适应天线阵技术等领域得到了十分广泛的应用。为了发挥算法的最佳
    的头像 发表于 12-21 16:40 721次阅读

    fpga布局布线算法加速

    任务是将逻辑元件与连接线路进行合理的布局和布线,以实现性能优化和电路连接的可靠性。然而,FPGA布局布线的过程通常是一项繁琐且耗时的任务,因此加速布局布线算法的研究具有重要意义。本文将详尽探讨
    的头像 发表于 12-20 09:55 779次阅读

    详解从均值滤波到非局部均值滤波算法的原理及实现方式

    将再啰嗦一次,详解从均值滤波到非局部均值滤波算法的原理及实现方式。 细数主要的2D降噪算法,如下图所示,从最基本的均值
    的头像 发表于 12-19 16:30 1123次阅读
    详解从均值<b class='flag-5'>滤波</b>到非局部均值<b class='flag-5'>滤波</b><b class='flag-5'>算法</b>的原理及<b class='flag-5'>实现</b>方式