使用中值滤波器对图像降噪

article/2025/8/27 16:09:43

中值滤波器:

     基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。中值滤波对椒盐噪声抑制很好,对高斯噪声抑制一般。 二维中值滤波可由下式表示:

程序代码如下: 

clc        %清除命令窗口的内容
close all  %关闭所有的Figure窗口
clear all  %清除工作空间的所有变量A = imread('Fig0507(a).tif');
figure,imshow(A),title('原图像');
B = Impulse_noise(A,0.2,0.2);%加入椒盐噪声
figure,imshow(B),title('对原图加上pa=0.2,pb=0.2的椒盐噪声后的图像');
C=Median_Filter(B);%对图像进行中值滤波
figure,imshow(C),title('使用大小为3×3的中值滤波器对图像进行滤波的结果');

中值滤波:

% 中值滤波
function v =Median_Filter(u) %中值滤波
u=im2double(u);
[m,n] = size(u);
v = zeros(m,n);for i = 2:m-1for j = 2:n-1A = [u(i-1,j-1),u(i-1,j),u(i-1,j+1),u(i,j-1),u(i,j),u(i,j+1),u(i+1,j-1),u(i+1,j),u(i+1,j+1)];v(i,j)=median(A); %取中值end
endend

实验结果: 

 

使用中值滤波来处理椒盐噪声具有比较好的效果,因为中值滤波器是使用卷积模板的中值来代替像素值,而椒盐噪声的灰度值不是最小就是最大,所以它很容易被过滤掉。

通过实验分析,中值滤波器在处理被椒盐噪声污染后的图像后,依然存在一些噪声,这是由于其噪声概率密度较大的原因。标准中值滤波器使用图像中相应领域的中值代替该图像中的每一点,这会引起不必要的细节丢失。对第一次滤波后的图像进行再一次的滤波处理,图像将会变得光滑的许多,与原图像相差不大。

 

 


http://chatgpt.dhexx.cn/article/cPBW8lV5.shtml

相关文章

【OpenCV 例程 300 篇】101. 自适应中值滤波器

专栏地址:『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章:图像复原与重建】 100. 自适应局部降噪滤波器 101. 自适应中值滤波器 102. 陷波带阻滤波器的传递函数 【youcans 的 OpenCV 例程 300 篇】101. 自适应中值滤波器 3.8 自适应中值滤波器&am…

python实现自适应中值滤波器

目录 原理(冈萨雷斯第四版p235): 代码: 结果: 原理(冈萨雷斯第四版p235): 代码: import cv2 import numpy as np from matplotlib import pyplot as plt# for gray im…

自编自适应中值滤波器

自适应中值滤波器 算法思想:自适应中值滤波器是根据输入的图片像素矩阵和滤波器窗口的最大和最小值,首先,根据滤波器窗口的最大值申请两个可以处理了边界情况的滤波器,大小为原图加上最大滤波器的尺寸减一,按照边缘处…

图像中值滤波器python实现

中值滤波器原理 图像处理中最著名的统计排序滤波器是中值滤波器,即用一个预定义的像素领域中的灰度中值来代替像素的值: 其中是以(x,y)为中心的领域,包含中心点自己,在领域中找到中值,并用中值…

中值滤波器 median filter

中值滤波 中值滤波器(median filter)是将每个像素替换为围绕这个像素的矩形领域内的中值,或”中值像素"。 通过平均的简单模糊对噪声图像,由其是有较大孤立的异常值非常敏感。少量具有较大偏差的点也会严重影响到均值滤波。中值滤波可以采用取中间…

中值滤波器

我们前面提到,使用平均操作或加权平均操作可以降低图像的噪声,并由此引出了空间滤波器的概念。 这种平均操作或加权平均操作的空间滤波器,根据平均操作的特点,可以叫做均值滤波器。均值,就是平均值得意思。我们在《统…

C Primer Plus 第1章 初识C语言 笔记

C语言的起源 1972年,贝尔实验室的丹尼斯里奇(Dennis Ritch)和肯汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。 选择C语言的理由 用C语言编写的程序更易懂、更可靠。C语言充分利用了当前计算机的优势&…

C语言 基于结构体的程序设计(PTA)

一、实验目的 1.掌握C语言中结构体类型的定义和结构体变量的定义和引用。 2.掌握用结构指针传递结构数据的方法。 二、实验内容 1、 计算职工工资 给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输…

C语言学习笔记(kk-zkx)

前言 流行的编程语言编程语言的大致发展历程编程语言应用数据在内存中的储存程序载入内存ASCII编码GB2312和GBKUnicode字符集(统一码,万国码)就业坑,当心 编程语言:用来控制计算机,让计算机为我们做事情的语…

C语言简介--学前必备知识

关键字 32个关键字: C和C的关系 C 主要在C语言的基础上增加了面向对象和泛型的机制,提高了开发效率,以适用于大中型软件的编写。C支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言&a…

C语言入门篇——文件操作篇

目录 1、为什么使用文件 2、什么是文件 2.1程序文件 2.2数据文件 2.3文件名 3、文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4、文件的顺序读写 5、文件的随机读写 5.1fseek 5.2ftell 5.3rewind 6、文本文件和二进制文件 7、文件读取结束的判定 8、文件…

C语言基础之13:文件输入/输出

Tips1: 函数:fopen()、getc()、putc()、exit()、fclose() fprintf()、fscanf()、fgets()、fputs() rewind()、fseek()、ftell()、fflush() fgetpos()、fsetpos()、feof()、ferror() ungetc()、setvbuf()、fread()、fwrite() 如何使用C标准I/O系列的函数…

01是c语言,01-C语言-简介

一、C语言的起源 1972年,由贝尔实验室的丹尼斯.里奇和肯.汤普逊在开发UNIX系时设计C语言。C语言是在B语言基础上进行设计的。C 语言设计的初衷是将其作为程序员使用的 一种编程工具,因此,其主要目标是成为有用的语言。 二、C语言的特性 设计特…

用C语言实现CLI界面的魔塔游戏

简介 本着开源的精神,我分享下我做的数据结构大作业,我当时选择的是游戏设计题目,由于魔塔基础的机制不太复杂,所以就借着大作业设计了个简易的魔塔游戏。 这是游戏界面: 以下是我当时大作业内容: 我把…

C语言入门(什么是C语言,C语言的编程机制以及一些基础计算机概念)

目录 一.什么是C语言 1.面向对象: 2.面向过程: 二.C语言特点 三.C语言开发时间 四.环境搭建 1.代码编辑器 2.C编译器 五.C语言标准 六.计算机补充知识 1.计算机构成 2.CPU工作 3.编译器 七.编写程序步骤 八.源文件,目标文件&a…

C语言 09.文件

读写文件与printf、scanf关联 printf – 屏幕 – 标准输出 scanf – 键盘 – 标准输入 perror – 屏幕 – 标准错误 系统文件:(打开和关闭由系统自动执行) 标准输入 – stdin – 0 一旦关闭了,scanf就不可以使用 标准输出 – s…

C语言完整知识体系总结

C语言的知识体系总结 这里写目录标题 C语言的知识体系总结序言:C语言的概述历史、特点、标准)1、嵌入式开发为什么选择C语言?(面试题!)2、为什么内核开发选择C语言?3、C语言的缺点:a…

【C语言篇】初识C语言

友情链接:C/C系列系统学习目录 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的…

C语言学习笔记 1

中央处理器(CPU): 包括运算器、控制器、寄存器 Enum: Enum: 枚举类型 System函数: 执行系统命令。如pause、cmd、calc、mspaint、notepad..... System(“pause”);//暂停 System(“calc”);//打开计算机 System(“cls”);//…

C语言:文件操作

标题 文件什么是文件: 文件指针文件缓冲区操作文件1.文件的打开与关闭函数2.文本行输入输出函数3.格式化输入输出函数(有格式的数据输入到文件中)4.二进制输入输出调整文件指针位置6.ftell与rewind7.文件结束的判定 程序退出,内存…