一、原理_中值滤波

中值滤波的基本思想是将图像中每个像素的灰度值用其邻域内像素灰度的中值代替,它是一种非线性平滑滤波算法。
设加噪图像为 f(x,y) ,经中值滤波处理后的图像为g(x,y) ,则:

式中,S是(x,y)像素点的邻域。本实验分别选用3×3、5×5、7×7的中值滤波窗口对图像进行处理。

需要注意的是,当模板滑动到图像边缘时,模板的部分行或列就会处于图像之外,本实验可采用下面的任一种方法处理这种问题:
①先在图像边缘以外补上一行和一列灰度为零的像素点,再对原图像中的每个像素点进行模板处理。
②保留图像的边缘像素,对其它像素进行模板处理。

二、步骤

(1)读入原图像lena.bmp并显示;
(2)对原图像分别添加高斯噪声和椒盐噪声,并显示加噪图像;
(3)采用中值滤波进行去噪处理,并显示去噪图像;

三、实验图像

lena.bmp

四、框图

五、代码

%------------------------------------------------------------------------
% File name:           second_2
% Last modified Date:  2021年6月10日20点09分
% Author:              Jasmine
% Descriptions:        中值滤波
%------------------------------------------------------------------------%清空工作区
clc,clear,close all;
%读入原图像
lena = imread('D:\lena.bmp');
%显示原图像
subplot(3,3,1);imshow(lena);title('原图');
%添加高斯噪声并显示
guassian_lena = imnoise(lena, 'gaussian', 0, 0.02);
subplot(3,3,2);imshow(guassian_lena);title('加入 均值:0 方差:0.02 的高斯噪声');
%添加椒盐噪声并显示
salt_lena=imnoise(lena,'salt & pepper',0.02);
subplot(3,3,3),imshow(salt_lena),title('加入噪声密度:0.02的椒盐噪声');
%高斯噪声   中值滤波
guassian_lena=rgb2gray(guassian_lena);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%手动中值滤波
n=3;    %模板大小
[height, width]=size(guassian_lena);   %获取图像的尺寸(n小于图片的宽高)
x1=double(guassian_lena);  %数据类型转换
x2 = x1;  %转换后的数据赋给x2
for i=1:height-n+1  for j=1:width-n+1  c=x1(i:i+(n-1),j:j+(n-1)); %在x1中从头取模板大小的块赋给c  e=c(1,:);      %e中存放是c矩阵的第一行  for u=2:n  %将c中的其他行元素取出来接在e后使e为一个行矩阵 e=[e,c(u,:)];          end  med=median(e);      %取一行的中值x2(i+(n-1)/2,j+(n-1)/2)=med;   %将模板各元素的均值赋给模板中心位置的元素  end
end
result=uint8(x2);  %转换格式
subplot(3,3,4);imshow(result);title('高斯噪声 3*3中值滤波');
%5*5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%借助MATLAB中值滤波函数中值滤波(以下皆是)
gua_k2=medfilt2(guassian_lena,[5,5]);
subplot(3,3,5);imshow(gua_k2);title('高斯噪声 5*5中值滤波');
%7*7
gua_k3=medfilt2(guassian_lena,[7,7]);
subplot(3,3,6);imshow(gua_k3);title('高斯噪声 7*7中值滤波');%椒盐噪声    中值滤波
salt_lena=rgb2gray(salt_lena);
%3*3
salt_k1=medfilt2(salt_lena);
subplot(3,3,7);imshow(salt_k1);title('椒盐噪声 3*3中值滤波');
%5*5
salt_k2=medfilt2(salt_lena,[5,5]);
subplot(3,3,8);imshow(salt_k2);title('椒盐噪声 5*5中值滤波');
%7*7
salt_k3=medfilt2(salt_lena,[7,7]);
subplot(3,3,9);imshow(salt_k3);title('椒盐噪声 7*7中值滤波');

六、运行结果

中值滤波运行结果

数字图像处理 中值滤波 MATLAB实验相关推荐

  1. 数字图像处理——中值滤波中心加权中值滤波

    引言:在处理图像时,线性滤波将破坏边缘,而且不能有效滤除脉冲噪声.非线性滤波基于对输入信号序列的一种非线性映射关系,常可把某一特定的噪声近似映射为零而保留信号的重要特征,因而可以在一定程度上克服线性滤 ...

  2. 数字图像处理——中值滤波及其改进算法

    一.算法介绍 中值滤波器是非线性滤波器的一个例子,它在保留图像特征方面非常有效. 但是,滤波器的窗口大小直接影响中值滤波器的性能. 较小的窗口保留了特征,但会导致噪声抑制的减少. 在较大窗口的情况下, ...

  3. 数字图像处理——中值滤波降噪

    使用滤波模板中像素点的中值点作为目标像素,这就称为中值滤波降噪(顾名思义) Python实现过程如下: 图像数据为: 图像中存在典型的椒盐噪声,而中值降噪,对椒盐噪声的作用是非常有效的. 导入要使用的 ...

  4. 3 3中值滤波 matlab,MATLAB中值滤波在灰度图像处理中的应用研究和仿真(3)

    MATLAB中值滤波在灰度图像处理中的应用研究和仿真(3) 时间:2016-11-30 21:28来源:毕业论文 3.2 中值滤波的仿真 3.2.1 中值滤波仿真函数介绍 MATLAB能够支持多种图像 ...

  5. matlab图像处理-中值滤波原理

    中值滤波原理   中值滤波本质上是一种统计排序滤波器.对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i,j)点的响应.   中值不同于均值,是指排序队列中位于中 ...

  6. matlab 中medfilt2报错,Matlab图像处理——中值滤波medfilt2问题解决

    程序: I=imread('13.jpg');%读入图像 imshow(I); h=imnoise(I,'salt & pepper');%为I图片叠加椒盐噪声噪声 figure;imshow ...

  7. 中值滤波matlab

    摘  要 中值滤波技术是一种在去除噪声的同时能较好保护图像边缘细节的非线性技术,在图像增强和恢复等领域中得到了广泛的应用.文章阐述了中值滤波的原理和特点,并使用软件工具MATLAB实现了图像的中值滤波 ...

  8. matlab设计自适应中值滤波,matlab课程设计(自适应中值滤波).doc

    matlab课程设计(自适应中值滤波).doc 10信息工程系课程设计报告课程MATLAB课程设计专业通信工程班级2级本科二班学生姓名1景学号114学生姓名2学号1414学生姓名3王学号6学生姓名4学 ...

  9. MATLAB--数字图像处理 中值滤波

    中值滤波 概念:   中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实 ...

最新文章

  1. 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)
  2. 学python用ubuntu还是win10_Windows 10上使用Ubuntu的优点
  3. SAP CRM中间件下载equipment时遇到的一个错误
  4. [短彩信]C#短彩信模块开发设计(2)——配置
  5. 反序列化对象列表发生异常_通过反序列化漏洞,黑客能做什么呢?
  6. Mac安装Cobalt Strike 4 【亲测有用】
  7. 诗与远方:无题(五十七)
  8. 计算机应用能力考试用书有哪些,全国专业技术人员计算机应用能力考试用书
  9. Gstreamer衬垫(pad)支持的媒体类型(三)
  10. 浏览器的不兼容,归纳几点html编码要素
  11. ItemCF的Python实现
  12. python爬虫构建国外代理池_Python爬虫入门(四)教你免费拥有自己的代理IP池
  13. 添加zabbix飞信报警
  14. 异地灾备,利用华为云就可以实现
  15. ACCESS模糊查询like的解决方法SQL查询语句通配符问题
  16. À¸´£º¹²ÏíÖйúÐÅÏ¢²úÒµ´øÀ´µÄÓ°ÏìÁ¦
  17. CenterNet:Objects as Points代码解析(九):通过高斯函数画热点图
  18. vue中使用echarts词云
  19. 私有云 虚拟服务器 区别,虚拟主机介绍 虚拟主机是不是私有云
  20. 基于linux的贪吃蛇游戏设计_贪吃蛇还能这么玩?绝对是你从未体验过的全新版本(上)...

热门文章

  1. Thinkphp3.2版本Controller和Action的访问方法
  2. Objective-C:ARC自动释放对象内存
  3. 不同数据库的自增代码
  4. 关于Paralle.For和Paralle.ForEach
  5. 各個瀏覽器CSS樣式控制
  6. dart js转换_基于dart生态的FaaS前端一体化建设
  7. MogDB/openGauss 故障排查思路
  8. SQL优化——IN和EXISTS谁的效率更高
  9. 每日一题 2020.05.11
  10. 连载二:Oracle迁移文章大全