当前位置:   article > 正文

数字图像处理 空间域平滑 MATLAB实验_空域平滑实验原理

空域平滑实验原理

一、原理_均值滤波

设加噪图像为 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均值滤波');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

六、运行结果

空间域平滑运行结果

空间域平滑运行结果
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/315307
推荐阅读
相关标签
  

闽ICP备14008679号