图像噪声和滤波

news2024/11/17 0:34:31

图像噪声

        在图像采集、处理和传输过程中会受到噪声的影响。常见的图像噪声有椒盐噪声、高斯噪声等。

椒盐噪声

        椒盐噪声也叫脉冲噪声,在图像中比较常见,表现为随机出现的噪点,比如在明亮区域中出现的黑色像素。参考下图的例子:

高斯噪声

        高斯噪声是指噪声密度函数服从高斯分布的一类噪声。高斯噪声也叫正态噪声,这种噪声模型经常被用于实践中。高斯随机变量z的概率密度函数如下:

         这里的z表示灰度值,\mu表示z的平均值或期望值,\sigma表示z的标准差。标准差的平方\sigma ^2为z的方差。此函数的图像如下:

         下图是高斯噪声的示例图:

 图像平滑处理

        图像平滑处理,从信号处理角度看就是去除其中高频信息,保留低频信息。对图像进行低通滤波可以去除图像中的噪声,对图像进行平滑处理。常见的滤波方式有:均值滤波、高斯滤波、中值滤波和双边滤波。

 均值滤波

        均值滤波的原理非常简单,可以理解为求平均,它使用均值滤波模板对图像噪声进行滤波。

          S_{xy}表示中心点在(x,y),大小为m * n的矩形窗口的坐标组。

        对于一个3*3的区域,均值滤波卷积框表示如下:

        

         均值滤波的优点是简单,运算速度快。缺点是由于只是简单的算平均,会造成图像的细节丢失。下图为使用均值滤波降噪后的对比图:

 高斯滤波

二维高斯分布函数

        由于图像有两个维度(x和y),因此二维高斯分布函数是构建高斯滤波的基础。

        二维高斯分布函数的图像如下:

        关于高斯分布图像的更多细节,可参考这里:

多维高斯分布---【2】_二维高斯分布_王延凯的博客的博客-CSDN博客多维高斯分布1.一维高斯分布2.二维高斯分布3.多维高斯分布4.心声1.一维高斯分布\qquad在介绍二维高斯分布之前我们先介绍一下一维高斯分布的函数图像,如下所示:f(x)=12π⋅δ⋅e−(x−μ)22δ2f(x)= \frac{1}{\sqrt{2 \pi}\cdot \delta}\cdot e^{-\frac{{(x-\mu)}^2}{2\delta^2}}f(x)=2π​⋅δ...https://blog.csdn.net/weixin_38468077/article/details/103508072        这里的\sigma可以看做两个值,x方向的标准差\sigma_x以及y方向的标准差\sigma_y

        \sigma_x\sigma_y取值越大,整个形状就越扁平;反之则形状越尖。高斯分布是一种钟形曲线,越靠近中心位置,值就越大;离中心越远值越小。在使用高斯滤波时,将“中心点”作为原点,其他点按照其在高斯分布曲线上的位置分配权重,最终通过卷积得到一个加权平均值。

高斯滤波过程

        1. 确定权重矩阵

            假设图像中心点坐标为(0,0),则和中心点相邻的8个点坐标(3x3窗口为例)为:

         要计算权重矩阵,首先要设定\sigma,我们假设它是1.5。然后代入x和y的坐标值计算出权重模板:

         这9个点的权重和等于0.4787147,并不等于1,为了让所有权重的和等于1,我们对这9个值分别除以0.4787147,这样就得到了最终的权重矩阵(按照各个像素权重百分比表示)。

        得到权重矩阵后,就可以对图像进行卷积做高斯滤波了。

        假设有一个3x3的像素矩阵,9个像素点的值如下:

         对每个点都乘以权重矩阵中对应位置的值,得到的结果如下:

         最后,中心点像素的值就是9个点像素值的和:

         对于RGB图像,只要对三个通道分别进行高斯模糊就可以得到对应的像素值。

        高斯滤波的效果的例子如下:

中值滤波

        中值滤波原理非常简单,中值就是中间值,这种滤波方法对于滤除椒盐噪声效果非常好。具体做法是对窗口内的像素值进行排序,找到中间值后,用中间值作为像素点的值。

         上图左侧的3x3窗口中,按照像素值大小排序可得:10,20,30,35,40,50,60,70,80。可以得到中间值为40,因此像素中心点的值在中值滤波后会变成40。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【更改python版本】——日常记录

目录索引 卸载旧版本:提示:python launcher: 下载过程:配置pycharm:提示点:python console打不开的问题: 卸载旧版本: 要卸载 Python 3.7.7 在 Windows 上,请按照以下步骤…

接口测试持续集成

目录 一.在Windows系统上部署Jenkins1.下载Jenkins安装包2.启动Tomcat服务3.通过浏览器访问Jenkins 二.管理Jenkins中的插件1.安装插件2.更新插件3.卸载插件 三.创建项目四.配置项目运行频率 一.在Windows系统上部署Jenkins 1.下载Jenkins安装包 进入Jenkins官网,…

22-作用域链的理解

文章目录 作用域全局作用域函数作用域块级作用域二、词法作用域三、作用域链 作用域 🍿🍿🍿作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 作用域决定了代…

【案例31】数据源密码保存不上

问题现象 客户反馈在启动BIP高级版时,Bip 2207启动异常。在相关的启动日志中排查发现,报数据源连接异常的错误。排查发现BIP高级版的数据源不通。发现密码字段为空导致。 问题分析 添加了正确的密码,测试通过保存。再次重启。发现还是报数据…

如何支持研发对CSDN个性化推荐系统重构

目录 大地图工具构建数据治理保持发布重视测试小结 一个以内容服务为主的软件,它的推荐系统在数据侧对软件产生着举足轻重的作用。数据的三个方面决定了这个内容软件的档次。 数据的质量好坏数据和用户需求的相关性好坏数据的层次体系好坏 通常,我们说…

40 # npm 的使用

npm 3n: nrm:node 中源管理工具nvm:node 中的版本管理工具npm:node 的包管理器,管理的都是 node 的模块 第三方模块 分两种: 全局模块:只能在命令行中使用,任何路径都可以本地模…

前端高频JS面试题(附答案+视频讲解)

高频前端js面试题总结 对应的视频讲解位置 2023前端高频面试题-JS高频面试题(上)_哔哩哔哩_bilibili 目录 1. var let const 的区别? 2. javascript 有哪些基础数据类型? 3. null和undefined区别 4. 与 的区别?…

二十三种设计模式第十二篇--组合模式

组合模式是一种结构型设计模式,它允许将对象组合成树形结构来表示整体-部分的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 在组合模式中,有两种类型的对象:叶子对象和组合对象。叶子对象表示树结构中的叶子节点&…

为什么需要建设海绵城市?

海绵城市,是新一代城市雨洪管理概念,是指城市在适应环境变化和应对雨水带来的自然灾害等方面具有良好的“弹性”,也可称之为“水弹性城市”。其本质上是一种生态化的城市发展模式,其核心是将城市建设与生态环境保护相结合。 为什么…

二.《UE4奥丁》解密哈希ID

哈希表概念 1.相信大家经常在UE4或者UE5游戏逆向中遇到下面的代码段 $ > > 41:8B42 0C > mov eax,dword ptr ds:[r10C] > $4 > 3B05 AE589B04 > cmp eax,dword ptr ds:[7FF7B68B74F4] …

DeFi(去中心化金融),定义金融服务的未来

在数字化时代,区块链技术的发展引领了金融服务的全新变革。去中心化金融(DeFi)作为区块链技术的重要应用之一,正在重新定义传统金融服务的未来。本文将探讨DeFi的概念、优势以及对金融服务的影响,并展望其在未来的发展…

Linux上配置安装Nginx

Linux上安装配置Nginx 前言安装参考 前言 在前文中介绍了Nginx:Nginx入门 现在我们来试着在服务器上安装以下Nginx,以下操作使用的版本为1.20.0 下载地址为:Nginx官网下载地址 安装 先把包丢上去,我这里使用的是XFtp连接的服…

【Spring】— Spring MVC简单数据绑定(二)

接上文:【Spring】— Spring MVC简单数据绑定(一) 目录 2.3绑定POJO类型 2.3绑定POJO类型 在使用简单数据类型绑定时,可以很容易地根据具体需求来定义方法中的形参类型和个数,然而在实际应用中,客户端请求…

java学习记录之MySql二

1 mysql回顾 1.1 DDL 数据定义语言:结构  数据库database create database 数据库名称 character set 字符集 [collate 比较]; drop database 数据库名称; alter database 数据库名称 character set 字符集 …;  表 create table 表名(字段描述 , … ); 字段描述…

优雅地在高版本Android将文件保存到磁盘

Android对于文件存储的限制正在日趋严格。事实上,从Android 11(Android R)开始,那些传统的文件保存和读取方式统统失效了。 而高版本Android中存/取文件操作,百度到的内容是可行的,但是非常麻烦&#xff0c…

AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)

为了满足企业在数字化转型过程中对更新迭代生产力工具的需求,灵雀云近日推出了Alauda MLOps 解决方案,帮助企业快速落地AI技术、实现智能化应用和服务。 AIGC大模型已成为企业创新引擎 随着ChatGPT的爆火,越来越多的人考虑使用AI来提升我们日…

python机器学习——回归模型评估方法 回归算法(线性回归、L2岭回归)

目录 回归模型评价方法【回归】线性回归模型1.线性模型2.线性回归3.损失函数(误差大小)4.解决方法1) 最小二乘法之正规方程2) 最小二乘法之梯度下降 5.代码实现5.模型保存与加载6.特点 实例:波士顿房价【回归】带有L2正则化的岭回归 回归模型…

C++初阶之类和对象(上)

类和对象(上) 1、面向过程和面向对象初步认识2、类的引入3、类的定义4、类的访问限定符及封装4.1 访问限定符4.2 封装 5、类的作用域6、类的实例化7、类对象模型7.1 如何计算类对象的大小 8.this指针8.1 this指针的引出8.2 this指针的特性8.3. C语言和C实…

Python开发工具PyCharm 2023.1发布,这些新功能都值得期待!

PyCharm 2023.1 现已正式发布!今年的第一个主要版本带来了对远程Jupyter Notebook的支持、对新UI的增强、改进的泛型类型推断等。 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0…

SpringBoot 使用 Testcontainers 进行容器化集成测试

SpringBoot 使用 Testcontainers 进行容器化集成测试 容器化集成测试是测试应用程序与其依赖项之间的集成,其中依赖项以容器的形式运行。SpringBoot提供了Testcontainers来测试应用程序与依赖项之间的集成,本文将介绍如何使用Testcontainers进行容器化集…