一、原理_均值滤波

设加噪图像为 f(x,y) ,经均值滤波处理后的图像为g(x,y) ,则:

式中, S是(x,y)像素点的邻域,K是S内的像素数。
最典型的S为3X3邻域,可用模板形式表示为:

这样,将模板在待处理图像中逐点滑动,与图像相卷积,就可得到整幅图像的平滑。
本实验分别选用3×3、5×5、7×7的均值滤波模板对图像进行处理。
需要注意的是,当模板滑动到图像边缘时,模板的部分行或列就会处于图像之外,本实验可采用下面的任一种方法处理这种问题:
①先在图像边缘以外补上一行和一列灰度为零的像素点,再对原图像中的每个像素点进行模板处理。
②保留图像的边缘像素,对其它像素进行模板处理。

二、步骤

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

三、实验图像

lena.bmp

四、框图

五、代码

%------------------------------------------------------------------------
% File name:           first_2
% Last modified Date:  2021年6月10日20点01分
% Author:              Jasmine
% Descriptions:        空间域平滑
%------------------------------------------------------------------------%清空工作区
clc,clear,close all;
%读入原图像
lena = imread('D:\_1Course\Digital_image_processing\photo\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的椒盐噪声');
%对有高斯噪声的图像进行均值滤波并显示
%3*3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%手动均值滤波
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  s=sum(e);      %取一行的和  x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);   %将模板各元素的均值赋给模板中心位置的元素  end
end
result=uint8(x2);  %转换格式
subplot(3,3,4),imshow(result);title('高斯噪声 3*3均值滤波');
%5*5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%借助MATLAB均值滤波(以下均是)
I_5=fspecial('average',[5,5]);%3*3均值滤波
I_5_5=imfilter(guassian_lena,I_5);
subplot(3,3,5),imshow(I_5_5,[]);title('高斯噪声 5*5均值滤波');
%7*7
I_7=fspecial('average',[7,7]);%3*3均值滤波
I_7_7=imfilter(guassian_lena,I_7);
subplot(3,3,6),imshow(I_7_7,[]);title('高斯噪声 7*7均值滤波');%对有椒盐噪声的图像进行均值滤波并显示
%3*3
I_3=fspecial('average',[3,3]);%3*3均值滤波
S_3_3=imfilter(salt_lena,I_3);
subplot(3,3,7),imshow(S_3_3,[]);title('椒盐噪声 3*3均值滤波');
%5*5
S_5_5=imfilter(salt_lena,I_5);
subplot(3,3,8),imshow(S_5_5,[]);title('椒盐噪声 5*5均值滤波');
%7*7
S_7_7=imfilter(salt_lena,I_7);
subplot(3,3,9),imshow(S_7_7,[]);title('椒盐噪声 7*7均值滤波');

六、运行结果

空间域平滑运行结果

数字图像处理 空间域平滑 MATLAB实验相关推荐

  1. 数字图像处理 频率域平滑 MATLAB实验

    一.原理_频率域平滑 理想低通滤波器的传递函数为: n 阶巴特沃斯低通滤波器的传递函数为: n 阶指数低通滤波器的传递函数为: 二.步骤 (1)读入原图像test.tif并显示: (2)对原图像添加高 ...

  2. 数字图像处理 空间域锐化 MATLAB实验

    一.原理_空间域锐化 设图像为 f(x,y) , Roberts算子的定义式为: 其对应的模板为: Prewitt算子的定义式为: 其中, 其对应的模板为: Sobel算子的定义式为: 其中, 其对应 ...

  3. 数字图像处理 频率域锐化 MATLAB实验

    一.原理_频率域锐化 理想高通滤波器的传递函数为: n 阶巴特沃斯高通滤波器的传递函数为: n 阶指数高通滤波器的传递函数为: 二.步骤 (1)读入原图像test.tif并显示: (2)采用理想高通滤 ...

  4. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  5. 图像处理-空间域平滑滤波

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-12.html 目录: 1.       空间域和频域的概念 2 ...

  6. 数字图像处理 空间域高斯低通滤波 MATLAB实验

    一.原理_空间域高斯低通滤波 高斯低通滤波是一种使用的去噪滤波,可用于去除高斯噪声,且几乎没有振铃现象. 二.步骤 (1)读入原图像lena.bmp并显示: (2)对原图像分别添加高斯噪声,并显示加噪 ...

  7. 数字图像处理技术及实用 MATLAB实验报告及PS作业

    实验二 图像类型 一.实验目的 1.读取任一图像,将其转换成二值图像,设置二值化图像的阈值,分别为level=0.4,level=0.7 .对结果进行分析. 2.选择不同的阈值,观察阈值对图像二值化的 ...

  8. 数字图像处理-空间域图像增强(一)(图像反转,对数变换,幂次变换、分段线性变换)

    空间域增强的第一部分:图像反转,对数变换,幂次变换.分段线性变换 (s:现点值,r: 原点值) 图像反转: 这个无需多说,就是把黑变白,白变黑,拿八位灰度图像来说 表达式:s=255-r 作用:看清暗 ...

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

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

最新文章

  1. python掌握程度怎么判断-Python数据分析路上,温故而知新
  2. redis演练(5) redis持久化
  3. css动画-animation各个属性详解(通俗易懂)
  4. 分组背包基础--1712 ACboy needs your help
  5. leetcode931. 下降路径最小和(动态规划)
  6. 【英语学习】【Daily English】U15 Culture L02 For a second I wanted to go home
  7. OpenGLES渲染
  8. android 拖动进度,Android 可拖动的seekbar自定义进度值
  9. (篇一)作为一个程序猿,这些C语言实例你必须会!
  10. 图像中的一条直线在旋转缩放过程中会有分段现象,或产生分段节点
  11. linux 磁盘分区,格式化,挂载
  12. js+canvas 图片+文字合成
  13. flutter2.x报错解决type (RouteSettings) => Route<dynamic> is not a subtype of type (RouteSettings) => Rou
  14. 蓝牙耳机哪个品牌性价比高?高性价比真无线蓝牙耳机
  15. Hadamard矩阵和Kronecker积
  16. html横向导航栏滑动效果,JavaScript实现滑动导航栏效果
  17. 基于51单片机自动数字电压表PCF8591 TLC2543 TL548 proteus仿真汇编程序设计
  18. openssl RSA、AES、DES、MD5、SHA1,CA
  19. python语言语句单词大全及读音_python单词怎么读
  20. MATLAB 函数 判断一个数是否为素数

热门文章

  1. 对CloseHandle用法的理解
  2. 调用系统相册,相机功能,遇到闪退的情况
  3. 最短路径之Dijkstra算法
  4. ASP.NET MVC 学习之路-5
  5. Win7下安装git
  6. classes目录绝对路径
  7. php discuz 定时计划,为什么discuz这个功能计划任务功能不用事件调度呢?
  8. C++ STL里的排序去重函数 超级方便
  9. 周三直播丨Oracle 12cR2 ADG LGWR Library Cache案例分享
  10. Oracle经典面试题,你都掌握了吗?