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

    关注

    1601

    文章

    21296

    浏览量

    593080
  • matlab
    +关注

    关注

    175

    文章

    2922

    浏览量

    228429

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    浮点LMS算法FPGA实现

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

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

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

    基于FPGA图像处理的高斯模糊实现

    高斯模糊(Gaussian Blur)是一种高斯低通滤波,可以过滤掉图像的高频部分,保留低频部分,对于去除高斯噪声非常有效果,常常被用于图像去噪中。
    发表于 10-26 09:36 310次阅读
    基于<b class='flag-5'>FPGA</b>图像处理的<b class='flag-5'>高斯</b>模糊<b class='flag-5'>实现</b>

    卡尔曼滤波算法是怎么实现对数据的预测处理的?

    卡尔曼滤波算法是怎么实现对数据的预测处理的
    发表于 10-10 08:28

    高斯滤波是用的什么原理?

    能简单的介绍一下高斯滤波原理吗
    发表于 10-09 08:00

    为什么高斯滤波广泛的应用在图像处理中?

    为什么高斯滤波广泛的应用在图像处理中
    发表于 10-09 06:31

    hash算法FPGA中的实现(1)

    FPGA的设计中,尤其是在通信领域,经常会遇到hash算法实现。hash算法FPGA的设计中,它主要包括2个部分,第一个就是如何选择一
    的头像 发表于 09-07 17:01 581次阅读
    hash<b class='flag-5'>算法</b>在<b class='flag-5'>FPGA</b>中的<b class='flag-5'>实现</b>(1)

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

    FPGA算法是指在FPGA(现场可编程门阵列)上实现算法FPGA是一种可重构的硬件设备,可以
    的头像 发表于 08-16 14:31 1825次阅读
    怎么用<b class='flag-5'>FPGA</b>做<b class='flag-5'>算法</b> 如何在<b class='flag-5'>FPGA</b>上<b class='flag-5'>实现</b>最大公约数<b class='flag-5'>算法</b>

    并行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器的FPGA实现步骤,并结合杜勇老师的书籍中的并行FIR滤波器部分进行一步步实现硬件设计,对书中的架构做了复现以及解读,并
    的头像 发表于 05-24 10:57 702次阅读
    并行FIR<b class='flag-5'>滤波</b>器MATLAB与<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    串行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器的FPGA实现步骤,并结合杜勇老师的书籍中的串行FIR滤波器部分进行一步步实现硬件设计,对书中的架构做了简单的优化,并进
    的头像 发表于 05-24 10:56 606次阅读
    串行FIR<b class='flag-5'>滤波</b>器MATLAB与<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    FPGA实现PID控制算法

    相信大家对于PID控制算法,都不感到陌生了,平衡车就是靠它平衡起来的,还有飞控的平衡算法也是它,以及FOC中的闭环控制中也是用的它,它不仅简单,而且易于理解。那么本篇文章将简要介绍一下算法的原理,然后带大家使用
    的头像 发表于 05-19 16:40 1199次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>PID控制<b class='flag-5'>算法</b>

    高斯响应滤波器设计

    这是一篇关于模拟高斯滤波器设计的经典文章,发表于1959年1月的《电气通信》杂志上。此篇文章引用度比较高,而且内容非常详实,包含了高斯滤波器综合和
    的头像 发表于 05-11 11:54 1016次阅读
    <b class='flag-5'>高斯</b>响应<b class='flag-5'>滤波</b>器设计

    关于高斯滤波器的响应和逼近

    本文讨论了一种滤波器,其幅频响应特性为,其中是频率的函数,是与滤波器带宽相关的常数。该滤波器的幅度响应曲线具有高斯概率函数的形状,结果表明,相位响应曲线基本上是线性的。以前的研究人员已
    的头像 发表于 04-28 10:29 2901次阅读
    关于<b class='flag-5'>高斯</b><b class='flag-5'>滤波</b>器的响应和逼近