基于MATLAB图像处理的中值滤波、均值滤波以及高斯滤波的实现与对比

作者:lee神

1.背景知识

中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.

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

方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

2

4

8

1

3

9

5

7

6

g(x,y)=med{f(x-k,y-l),(k,l∈W)}

g =med[2,4,8;1,3,9;5,7,6] = 5

中值滤波后的结果:

5

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=1/m ∑f(x,y)m为该模板中包含当前像素在内的像素总个数。

均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

2

4

8

1

3

9

5

7

6

g(x,y)=1/m ∑f(x,y)

g = (1/8)*(2+4+8+1+9+5+7+6)= 5

均值滤波后的结果:

5

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

2.MATLAB实现

源码:

%%-------------------------------------------------------------------------------------------

%% 2018/01/03

%% lee

%% 137194782@qq.com

%%微信公众号:FPGA开源工作室

%%--------------------------------------------------------------------------------------------

clearall;

clc;

M = imread('timg.jpg');%读取MATLAB中的名为timg的图像

figure,imshow(M);%显示原始图像

title('original');

gray = rgb2gray(M);

figure,imshow(gray);%显示灰度图像

title('gray');

P1 = imnoise(gray,'gaussian',0.02);%加入高斯躁声

figure,imshow(P1);%加入高斯躁声后显示图像

title('gaussiannoise');

P2 = imnoise(gray,'salt& pepper',0.02);%加入椒盐躁声

figure,imshow(P2);%加入椒盐躁声后显示图像

title('salt& pepper noise');

g = medfilt2(P1);%对高斯躁声中值滤波

figure,imshow(g);

title('medfiltergaussian');

h = medfilt2(P2);%对椒盐躁声中值滤波

figure,imshow(h);

title('medfiltersalt & pepper noise');

a=[1 1 1%对高斯躁声算术均值滤波

1 11

1 11];

l=1/9*a;

k = conv2(double(P1),double(l));

figure,imshow(k,[]);

title('arithmeticfiltergaussian');

d = conv2(double(P2),double(l));%对椒盐躁声算术均值滤波

figure,imshow(d,[]);

title('arithmeticfiltersalt & pepper noise');

sigma=8;%标准差大小

window=double(uint8(3*sigma)*2+1);%窗口大小一半为3*sigma

H=fspecial('gaussian',window, sigma);%fspecial('gaussian',hsize, sigma)产生滤波模板

img_gauss=imfilter(P1,H,'replicate');%为了不出现黑边,使用参数'replicate'(输入图像的外部边界通过复制内部边界的值来扩展)

figure, imshow(img_gauss);

title('gaussianfilting gauss noise');

img_salt=imfilter(P2,H,'replicate');

figure, imshow(img_salt);

title('gaussianfilting salt pepper noise');

结果展示:

原始图像

灰度图像

加入高斯噪声的灰度图像

加入椒盐噪声的灰度图像

经过中值滤波后的高斯噪声灰度图像

经过中值滤波后的椒盐噪声灰度图像

经过均值滤波的高斯噪声灰度图像

经过均值滤波的椒盐噪声灰度图像

经过高斯滤波的高斯噪声灰度图像

经过高斯滤波的椒盐噪声的灰度图像

结果分析:图像经过中值滤波后,高斯噪声没有被完全去除,椒盐噪声几乎被完全去除效果较好。经过均值滤波后不管是高斯噪声还是椒盐噪声大部分都没有被去除,只是稍微模糊化。经过高斯滤波后,高斯噪声和椒盐噪声几乎被很大程度的模糊化,原图好像被加上了一层蒙版。

欢迎大家关注我的微信公众号FPGA开源工作室和资源共享QQ群。(*  ̄3)(ε ̄ *)

matlab高斯滤波跟中值滤波区别,基于MATLAB图像处理的中值滤波、均值滤波以及高斯滤波的实现与对比...相关推荐

  1. matlab中提取裂缝图像,基于Matlab图像处理的水泥路面裂缝检测研究

    路面裂缝检测是计算公路状况指数的重要依据[1],传统的检测方法主要是靠人工检测,测量精度差.检测效率低.同时检测人员会有安全隐患[2-3].现在多采自动检测的方法对路面裂缝的损害进行检测,其中使用数字 ...

  2. matlab 二值化_基于MATLAB的指纹识别系统[GUI界面+万字技术文档+语音播报]

    一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...

  3. matlab中pid Tune控制器,基于MATLAB的PID控制器参数整定及仿真

    基于MATLAB的PID控制器参数整定及仿真 摘要:PID控制器结构和算法简单,应用广泛,但参数整定比较复杂,在此我探讨利用MATLAB实现PID参数整定及其仿真的方法,并分析比较比例.比例积分.比例 ...

  4. matlab中的运算函数,基于Matlab软件的函数运算在实践中的应用

    2017 年第 8 期 70 计算机应用技术信息技术与信息化基于 Matlab 软件的函数运算在实践中的应用 Applications of the Functional Operation in P ...

  5. matlab中dc ac装置,基于MATLAB的DC_DC、DC_AC电路仿真分析

    基于MATLAB的DC_DC.DC_AC电路仿真分析 艾澜;张晓光;刘艳 [期刊名称]<科协论坛(下半月)> [年(卷),期]2011(000)006 [摘要]随着电力电子技术的不断发展, ...

  6. matlab中stms和taylor,基于Matlab的电力系统故障分析与仿真V2.1(手机版)

    <基于Matlab的电力系统故障分析与仿真.doc>由会员分享,可免费在线阅读全文,更多与<基于Matlab的电力系统故障分析与仿真(V2.1)>相关文档资源请在帮帮文库(ww ...

  7. matlab中进行太阳能电池模型,基于Matlab╱Simulink的太阳能电池特性仿真

    - 1 - 基于Matlab/Simulink 的太阳能电池特性仿真 朱丽 合肥工业大学电气自动化系,安徽合肥(230009) E-mail :lilyzhu1980@http://www.doczj ...

  8. matlab中stms和taylor,基于Matlab的电力系统故障分析与仿真V2.1(模版2)

    <基于Matlab的电力系统故障分析与仿真.doc>由会员分享,可免费在线阅读全文,更多与<基于Matlab的电力系统故障分析与仿真(V2.1)>相关文档资源请在帮帮文库(ww ...

  9. matlab中stms和taylor,基于Matlab的电力系统故障分析与仿真V2.1(网络分享版)

    <基于Matlab的电力系统故障分析与仿真.doc>由会员分享,可免费在线阅读全文,更多与<基于Matlab的电力系统故障分析与仿真(V2.1)>相关文档资源请在帮帮文库(ww ...

  10. 基于matlab的心电信号处理毕业论文,浅议仿真基于MATLAB的“数字信号处理”仿真实验毕业论文范文...

    论文导读:),通过扬声器可以听到"重庆邮电大学,重庆邮电大学"声音,对原始语音信号进行FFT 频谱分析,程序关键代码如下: figure: t=(0:length(x)-1)/Fs ...

最新文章

  1. 面向技术编程,面向工资编程,面向用户编程?
  2. 输入命令导出oracle
  3. Machine.Config在哪里?
  4. [转]sqlserver 数据类型 及使用考虑
  5. tp5.0 根据经纬度 获取附近信息_php根据前端传递的经纬度获取区域地址信息
  6. 月结 sap_乡村基SAP:领跑中式快餐数字化转型
  7. 每天一道LeetCode-----计算整型数二进制中1的个数/返回二进制翻转后的结果
  8. Java字符类isUpperCase()方法与示例
  9. 2020快手用户及营销报告
  10. 【上采样问题】双线性插值的几何中心点重合与align_corners
  11. 计算机的启动盘,做win7启动盘制作方法
  12. 【Java】MD5加盐加密
  13. 区块链技术与应用简明PPT
  14. 万用表二极管档位点亮发光二极管LED
  15. 小赛毛游C记——初识C语言(1)
  16. 今日芯声 | 每天徒步7公里找信号?印度不愧是开挂民族
  17. 计算机组成原理学习笔记(四)指令系统(学习王道)
  18. 购买学校计算机房加密狗的请示,2015关于扩建机房的请示.doc
  19. CSS 1px边框问题两个解决方案
  20. 自制批量 PDF 转图片的工具软件(附百度网盘地址)

热门文章

  1. 使用tftp服务把路由器的配置上传到服务器
  2. 只需5分钟-----手把手教你如何注册美国AppleId账号
  3. 51单片机学习 光敏电阻传感器实验
  4. 数据采集:如何自动化采集数据?
  5. 【组成原理-处理器】数据通路
  6. Mysql-索引优化
  7. c语言代码大全表解释_C语言解惑圈子更新(20191201)
  8. FIT2CLOUD飞致云发布DataEase开源数据可视化分析平台
  9. 深入详细理解矩阵 (矩阵的加减乘、转置、共轭、共轭转置)
  10. 移动页面常用media尺寸