高斯滤波器及其实现

高斯滤波器及其实现高斯滤波器是空间滤波器的一种 学习高斯滤波器 需要空间滤波的知识作为先验知识 各种数字图像处理的书中都有介绍 冈萨雷斯的经典教材说的还是比较清楚的 建议看英文版 个人感觉比翻译过来的更容易理解 高斯滤波器是一种平滑线性滤波器 使用高斯滤波器对图像进行滤波 其效果是降低图像灰度的 尖锐 变化 也就是使图像 模糊 了 高斯滤波对于抑制服从正态分布的噪声效果非常好 其代价是使图像

 高斯滤波器是空间滤波器的一种,学习高斯滤波器,需要空间滤波的知识作为先验知识(各种数字图像处理的书中都有介绍,冈萨雷斯的经典教材说的还是比较清楚的,建议看英文版,个人感觉比翻译过来的更容易理解)。

        高斯滤波器是一种平滑线性滤波器,使用高斯滤波器对图像进行滤波,其效果是降低图像灰度的“尖锐”变化,也就是使图像“模糊”了。高斯滤波对于抑制服从正态分布的噪声效果非常好,其代价是使图像变得“模糊”。当然,有时对图像进行平滑滤波的目的就是让图像变得模糊。

        高斯滤波的模板是用高斯公式计算出来的。下面是一维和二维高斯分布函数及其函数图像:

        一维高斯分布函数:                                        二维高斯分布函数:

  高斯滤波器及其实现

        它们的图像分别为:                                                                      

    高斯滤波器及其实现

        那么高斯滤波模板是怎么生成的呢?是通过二维高斯函数计算出来的。例如,我们假设一个高斯模板的长、宽均为5,方差为0.5,那么首先,我们要在模板上建立一个坐标系,其原点就是高斯模板的中心点,如下图:

高斯滤波器及其实现

        然后每个模板的坐标就可以确定了:

                    高斯滤波器及其实现

        (-2,2)上的权值:W = ,把pi = 3.14,  σ=0.5,x=-2,y=2带入上式,获得(-2,2)处的权值。

       同理,可以计算 其他位置的权值。

        最后获得一个5*5,标准差σ为0.5的高斯滤波器(经过归一化以后):

        高斯滤波器及其实现

        matlab中可以使用fspecial函数实现高斯滤波模板,使用方法为:YourFilter = fspecial(‘gaussian’, [ 5 5], 0.5);

        在matlab中可以查看fspecial的源代码,通过open fspecial打开。我之前自己写了一个matlab版的实现高斯模板的代码,通过与fspecial的源代码对比,有些不一样的地方,而且我的代码确实不如自带的快,所以在这里只贴源代码。

        fspecial函数可以实现多种类型的滤波器,当第一个参数为”gaussian’时,实现的是高斯滤波器,源代码通过switch判断用户想得到哪种类型的滤波器,这里只把与高斯滤波器有关的代码贴出来,并放在一个函数中,我们把这个函数命名为gaussianFilter。函数的代码如下:

java

                            原始图像                                                           加入高斯噪声图像

    高斯滤波器及其实现

         使用5*5,方差为0.5的高斯滤波器滤波                             使用5*5,方差为1.5的高斯滤波器滤波

高斯滤波器及其实现

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225499.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:11
下一篇 2026年3月17日 上午9:12


相关推荐

  • linux fork函数浅析

    linux fork函数浅析

    2021年12月5日
    77
  • MVC学习笔记八:WebGrid控件的高级使用「建议收藏」

    MVC学习笔记八:WebGrid控件的高级使用「建议收藏」WebGrid控件的高级使用在笔记三中记录了WebGrid的简单使用,但实际工作中并不能满足开发要求,比如:考虑到性能,要求服务器端分页,而不是查出所有数据来进行简单的客户端页面分页;要在排序时,给列标题显示不同图像等等,都不是直接就能满足的,这里记录下对WebGrid进行的较高层次的使用。一.服务器端分页处理在演示服务端分页之前,先做一些简单的准备工作:

    2022年10月6日
    5
  • python问题 Traceback (most recent call last)

    python问题 Traceback (most recent call last)python运行问题Traceback(mostrecentcalllast)出现报错traceback(mostrecentcalllast)…………importError:Nomodulenamedlxml解决方案一般是打开cmd执行命令pipinstallxxxx(缺失的包,例如lxml)当然也有例外的,具体可参考下面的问题及其解决…

    2022年6月3日
    620
  • MySQL 5.7的原生JSON数据类型使用

    MySQL 5.7的原生JSON数据类型使用

    2022年2月18日
    49
  • WAP网页设计入门(转)

    WAP网页设计入门(转)WAP 网页设计入门 基本规则 基本格式和文件头 显示文本 显示图片 锚和任务 显示表单 事件 CGI 编程 这里介绍 WAP 协议标准组织所制定的标记语言 WML 由于和以前介绍的 HDML 在手机浏览器专用网页的特征上基本一致 所以概念部分就略去了 直接讲述语言 基本规则 WML 使用 XML 文档字符集 目前支持 Unico

    2026年3月19日
    4
  • Python3 – Docker部署caffe open_nsfw 图片鉴黄

    Python3 – Docker部署caffe open_nsfw 图片鉴黄本篇博文重点介绍 Centos 6 9Docker 部署 Caffe 测试 open nsfw 实例 意在学习 caffe 的快速安装 这里以 cpu 版本的 caffe 安装为例 简单应用 open nsfw 鉴黄库 当前使用图片和视频的项目越来越多 在此基础上 进一步封装可以商用 节省成本

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号