Matlab图像中加入脉冲噪声、高斯噪声并用均值滤波、中值滤波进行滤波处理

一、脉冲噪声和高斯噪声简介 

脉冲噪声和高斯噪声是两种常见的信号干扰类型,它们的特性和影响各不相同:

脉冲噪声(Impulse Noise):

  • 在图像中,脉冲噪声表现为随机出现的亮点或暗点,这些噪声点通常与周围像素明显不同。脉冲噪声也被称为椒盐噪声,因其外观类似于图像上撒了黑椒和食盐。
  • 这种噪声可能由图像传感器、传输错误或其他电子干扰引起。
  • 处理脉冲噪声通常使用中值滤波器等非线性滤波技术,这些技术能有效去除这些孤立的噪声点而不过度模糊图像。

高斯噪声(Gaussian Noise)

  • 高斯噪声在图像中表现为在整个图像上加上了一层随机的灰度变化,使图像看起来更“粗糙”。
  • 这种噪声的幅度在像素间呈正态分布,影响是全局性和一致的。
  • 高斯噪声的来源可能包括传感器噪声、环境光的波动或电路的热噪声。
  • 减少高斯噪声通常采用高斯滤波、双边滤波等线性或非线性滤波技术。

二、均值滤波和中值滤波简介

均值滤波(Mean Filtering)

  • 原理:均值滤波是一种线性滤波技术,通过对图像中每个像素的邻域内的像素值求平均,来计算该像素的新值。
  • 效果:这种滤波器可以有效地去除图像中的随机噪声,但缺点是它也会使图像边缘模糊,因为它不区分边缘和噪声,统一进行平均处理。
  • 应用:适用于去除随机噪声,尤其是高斯噪声,但不适合处理具有锐利边缘或细节要求较高的图像。

中值滤波(Median Filtering)

  • 原理:中值滤波是一种非线性滤波技术,它通过将图像中每个像素的邻域内的像素值进行排序,并取中间值作为该像素的新值。
  • 效果:中值滤波特别有效于去除脉冲噪声(如椒盐噪声),同时能较好地保持图像边缘的清晰度。这是因为中值滤波只是替换极端值,而不改变邻域内其他像素的值。
  • 应用:广泛用于去除椒盐噪声和其他类型的极端值噪声。由于其保边缘的特性,中值滤波在医学图像处理和实时视频处理中非常有用。

三、代码

img = imread("E:/桌面/图.jpg"); % 读取图像
img_gray = rgb2gray(img); % 转换为灰度图像
% 1. 添加脉冲噪声并使用均值滤波进行处理
img_noise = imnoise(img_gray, 'salt & pepper', 0.05); % 添加脉冲噪声
img_denoised_mean = filter2(fspecial('average', 3), img_noise); % 使用均值滤波进行去噪处理figure;
subplot(2,2,1), imshow(img), title('原彩色图');
subplot(2,2,2), imshow(img_gray), title('灰度图');
subplot(2,2,3), imshow(img_noise), title('加入脉冲噪声的图像');
subplot(2,2,4), imshow(uint8(img_denoised_mean)), title('均值滤波去噪后的图像');% 2. 添加脉冲噪声并使用中值滤波进行处理
img_noise = imnoise(img_gray, 'salt & pepper', 0.05); % 添加脉冲噪声
img_denoised_median = medfilt2(img_noise); % 使用中值滤波进行去噪处理figure;
subplot(2,2,1), imshow(img), title('原彩色图');
subplot(2,2,2), imshow(img_gray), title('灰度图');
subplot(2,2,3), imshow(img_noise), title('加入脉冲噪声的图像');
subplot(2,2,4), imshow(img_denoised_median), title('中值滤波去噪后的图像');% 3. 添加高斯噪声并使用均值滤波进行处理
img_noise = imnoise(img_gray, 'gaussian', 0, 0.02); % 添加高斯噪声
img_denoised_mean = filter2(fspecial('average', 3), img_noise); % 使用均值滤波进行去噪处理figure;
subplot(2,2,1), imshow(img), title('原彩色图');
subplot(2,2,2), imshow(img_gray), title('灰度图');
subplot(2,2,3), imshow(img_noise), title('加入高斯噪声的图像');
subplot(2,2,4), imshow(uint8(img_denoised_mean)), title('均值滤波去噪后的图像');% 4. 添加高斯噪声并使用中值滤波进行处理
img_noise = imnoise(img_gray, 'gaussian', 0, 0.02); % 添加高斯噪声
img_denoised_median = medfilt2(img_noise); % 使用中值滤波进行去噪处理figure;
subplot(2,2,1), imshow(img), title('原彩色图');
subplot(2,2,2), imshow(img_gray), title('灰度图');
subplot(2,2,3), imshow(img_noise), title('加入高斯噪声的图像');
subplot(2,2,4), imshow(img_denoised_median), title('中值滤波去噪后的图像');

四、效果图

1.脉冲噪声+均值滤波

在原始灰度图像上添加了脉冲噪声,使得图像中出现了黑白相间的明显点状噪声。使用均值滤波处理后,图像的噪声显著减少,但在去噪的同时,图像细节有所损失,导致图像变得模糊。

2.脉冲噪声+中值滤波

在原始灰度图像上添加了脉冲噪声,使得图像中出现了黑白相间的明显点状噪声。使用中值滤波后的图像,相比于均值滤波,在去除噪声的同时保留了图像的边缘和细节信息,因此得到的图像更清晰,噪声点也被有效地去除。

3.高斯噪声+均值滤波

在原始灰度图像上添加了高斯噪声,图像整体变得模糊,但不像脉冲噪声那样明显。使用均值滤波处理后,能够减少高斯噪声的影响,但在去噪的同时,图像细节有所损失,导致图像变得模糊。

4.高斯噪声+中值滤波

在原始灰度图像上添加了高斯噪声,图像整体变得模糊,但不像脉冲噪声那样明显。使用中值滤波后的图像,相比于均值滤波,在去除噪声的同时保留了图像的边缘和细节信息,因此得到的图像更清晰,噪声点也被有效地去除。

注:有任何问题欢迎评论区交流讨论或者私信!

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

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

相关文章

2024年第九届数维杯数学建模B题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

shell脚本编写-测试同一网段内主机是否在线

除了可以使用ansible自动化运维工具判断主机是否在线以外,还可以通过编写Shell脚本来实现。 1、编写脚本 #! /bin/bash #测试192.168.81.0/24网段中哪些主机处于开机状态,哪些主机处于关机状态# #方法一:使用for循环判断 # for i in {1..25…

全国各地区劳动力流动、外出务工劳动力数、总劳动力数(2006-2021年)

01、数据简介 劳动力流动是指劳动力在不同地区、行业、职业、岗位之间的流动。它是劳动力市场运行的重要特征,也是实现劳动力资源优化配置的必要条件。劳动力流动可以促进劳动力资源的优化配置,提高劳动生产率和经济效益。据名称:全国各地区…

【busybox记录】【shell指令】cut

目录 内容来源: 【GUN】【cut】指令介绍 【busybox】【cut】指令介绍 【linux】【cut】指令介绍 使用示例: 关于参数的特殊说明: 打印行中选定部分 - 输出每行的第n-m个字节 打印行中选定部分 - 输出每行的第n-m个字符 打印行中选定…

关于c++ 中 string s { ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ } 的方式的构造过程

(1)这样的构造方式不常见,但也确实 STL 库提供了这样的构造函数 (2)以反汇编分析这行代码 (3)谢谢阅读

【优选算法】—Leetcode—11—— 盛最多水的容器

1.题目 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#…

Unity 性能优化之LOD技术(十)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 LOD技术效果一、LOD技术是什么?二、LODGroup组件介绍三、LODGroup组件使用步骤添加组件添加模型 四、Project Settings中与LOD组件相关参数总结 L…

爱普生MCU系列语音芯片S1C31D41

随着科技的发展和产品的集成化,语音芯片已经逐渐替代了多种语音设备应用在各场合。语音芯片主要特性是功耗低,抗干扰能力强,外围器件少,控制简单,语音保存时间久(某些语音芯片可以保存内容100年),掉电不丢失…

【CTF Web】攻防世界 GFSJ0478 cookie Writeup(HTTP协议+信息收集+Cookie)

cookie X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’ 解法 按 F12,点击网络。 刷新页面。查看请求头中的 Cookie。 look-herecookie.php访问: http://61.147.171.105:53668/cookie.…

python网络爬虫学习——编写一个网络爬虫

参考资料:用Python写网络爬虫(第2版) 1、编写一个函数 (1)用于下载网页,且当下载网页发生错误时能及时报错。 # 导入库 import urllib.request from urllib.error import URLError,HTTPError,ContentTooS…

google地图js,添加标记,以及infowindow信息弹窗

&#xff08;谷歌地图版本V3&#xff09; var contentString "<div classdevinfo><P>设备ID: BJ-20240507</p> <P>设备状态: 正常</p> <P>通讯信号: 89% </p> <P>设备位置: 中国</p> <P>剂量率: 988</p&…

Go语言系统学习笔记(一):基础篇

1. 写在前面 公司的新业务开发需要用到go语言&#xff0c;虽然之前没接触过这门语言&#xff0c;但在大模型的帮助下&#xff0c;边看项目边写代码也能进行go的项目开发&#xff0c;不过&#xff0c;写了一段时间代码之后&#xff0c;总感觉对go语言本身&#xff0c;我的知识体…

项目经理【过程】概念

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】任务 【环境】绩效 【人】概述 【人】原则 【人】任务 【人】绩效 【过程】概念 一、过程是什么 1.1 项目管理五大过程组 1.2 五大过程组之间的相互作用 1.3 项目阶段VS过…

损失函数详解

1.损失函数 是一种衡量模型与数据吻合程度的算法。损失函数测量实际测量值和预测值之间差距的一种方式。损失函数的值越高预测就越错误&#xff0c;损失函数值越低则预测越接近真实值。对每个单独的观测(数据点)计算损失函数。将所有损失函数&#xff08;loss function&#xf…

BFS Ekoparty 2022 -- Linux Kernel Exploitation Challenge

前言 昨天一个师傅给了我一道 linux kernel pwn 题目&#xff0c;然后我看了感觉非常有意思&#xff0c;题目也不算难&#xff08;在看了作者的提示下&#xff09;&#xff0c;所以就花时间做了做&#xff0c;在这里简单记录一下。这个题是 BFS Lab 2022 年的一道招聘题&#…

小说阅读网站的设计与实现(论文+源码)_kaic

小说阅读网站的设计与实现 摘 要 伴随着网络技术的不断创新及电子商务的飞速发展&#xff0c;网上阅读的方式日益发挥出其不可替代的优越性&#xff0c;不同的阅读网站也随之蓬勃发展&#xff0c;网上阅读形式以独特的优势&#xff0c;发展蓄势蓬勃。在线阅读作为一种全新的阅…

NVIDIA: RULER新测量方法让大模型现形

1 引言 最近在人工智能系统工程和语言模型设计方面的进展已经实现了语言模型上下文长度的高效扩展。以前的工作通常采用合成任务,如密钥检索和大海捞针来评估长上下文语言模型(LMs)。然而,这些评估在不同工作中使用不一致,仅揭示了检索能力,无法衡量其他形式的长上下文理解。 …

PE文件(四)FileBuffer-ImageBuffer

文件执行的总过程 当文件从硬盘中读入虚拟内存&#xff08;FileBuffer&#xff09;中时&#xff0c;文件数据会被原封不动的复制一份到虚拟内存中&#xff0c;然后进行拉伸对齐。此时虚拟内存中文件数据叫做文件印象或者内存印象&#xff0c;即ImageBuffer。此时ImageBuffer中…

Android 系统启动流程源码分析

一、Init进程启动 是一个由内核启动的用户级进程。内核自行启动之后&#xff0c;就通过启动一个用户级程序init的方式&#xff0c;完成引导进程。 启动的代码init.c中的main函数执行过程&#xff1a;system\core\init.c中&#xff1a; 主要下面两个重要的过程&#xff1a; 1…

Verilog中4bit超前进位加法器

4bit超前进位加法器的逻辑表达式如下&#xff1a; 中间变量GiAiBi&#xff0c;PiAi⊕BiGi​Ai​Bi​&#xff0c;Pi​Ai​⊕Bi​ 和&#xff1a;SiPi⊕Ci−1Si​Pi​⊕Ci−1​&#xff0c;进位&#xff1a;CiGiPiCi−1Ci​Gi​Pi​Ci−1​ 用Verilog语言采用门级描述方式&am…