Matlab椒盐噪声、均值滤波、中值滤波及窗口尺寸影响

    科技2022-08-16  115

    一、目标:

    对lena图像加入椒盐噪声,强度为30%,分别采用均值滤波,中值滤波进行处理。并讨论不同尺寸的模板对结果影响

     

    二、函数分析:

    1、imnoise()

        定义:给图像增加噪声

        形式:J = imnoise(I,'gaussian')

                  J = imnoise(I,'localvar',var_local)

                  J = imnoise(I,'salt & pepper',d)等

        描述:J = imnoise(I,'gaussian'),即为给图像添加零均值高斯白噪声

                  J = imnoise(I,'localvar',var_local),加上局部方差var_local的零均值高斯白噪声。

                  J = imnoise(I,'salt & pepper',d),用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到影响。默认的噪声密度为0.05。

     

    2、fifter2()

        定义:二位数字滤波

        形式:Y = filter2(H,X)

        描述:根据矩阵H中的系数对数据X的矩阵应用有限脉冲响应滤波器。

     

    3、fspecial()

        定义:创建预定义的二维过滤器

        形式:h = fspecial(type)

                   h = fspecial('average',hsize)等

        描述:对于本次实验使用h = fspecial('average',hsize),即为返回大小为hsize的平均筛选器h。

     

    4、medfilt2()

        定义:二维中值滤波

        形式:J = medfilt2(I)

                  J = medfilt2(I,[m n])

         描述:执行中值滤波,其中每个输出像素包含输入图像中相应像素周围m×n邻域中的中值。I为输入图像,J为输出图像,[m n]为窗口大小,缺省为[3 3]。

     

    三、代码展示:

    % 1、对lena图像加入椒盐噪声,强度为30%, % 分别采用均值滤波,中值滤波进行处理。 % 并讨论不同尺寸的模板对结果影响。 % % @author: jackma % @time: 2020-10-5 13:46 % @URL: www.jackmark.top % @edit: % 1. Lena图像加入椒盐噪声 imgrgb = imread('lena512color.BMP'); %读取lena小姐姐真彩色图像 imggray = rgb2gray(imgrgb); %将rgb图像转换成灰度图像 figure('Name', 'Lena图像加入椒盐噪声'); %标题 subplot(121); imshow(imggray); %显示灰度图像 title('原始灰度图像'); I = imnoise(imggray, 'salt & pepper', 0.3); %添加椒盐噪声,强度30% subplot(122); imshow(I); %显示加入椒盐噪声的图像 title('加入强度30%椒盐噪声的图像'); % 均值滤波 figure('Name', '均值滤波处理分析'); %标题 K1 = filter2(fspecial('average', 3), I) / 255; %应用3*3领域窗口法 subplot(221); imshow(K1); title('3*3窗的均值滤波图像'); K2 = filter2(fspecial('average', 7), I) / 255; %应用7*7领域窗口法 subplot(222); imshow(K2); title('7*7窗的均值滤波图像'); K3 = filter2(fspecial('average', 9), I) / 255; %应用9*9领域窗口法 subplot(223); imshow(K3); title('9*9窗的均值滤波图像'); K4 = filter2(fspecial('average', 11), I) / 255; %应用11*11领域窗口法 subplot(224); imshow(K4); title('11*11窗的均值滤波图像'); % 中值滤波 figure('Name', '中值滤波处理分析'); S1 = medfilt2(I,[3 3]); subplot(221); imshow(S1); title('3*3窗的中值滤波图像'); S2 = medfilt2(I,[7 7]); subplot(222); imshow(S2); title('7*7窗的中值滤波图像'); S3 = medfilt2(I,[9 9]); subplot(223); imshow(S3); title('9*9窗的中值滤波图像'); S4 = medfilt2(I,[11 11]); subplot(224); imshow(S4); title('11*11窗的中值滤波图像');

    四、结果展示及分析:

     

                              图1 原始灰度图像和加入强度为30%的椒盐噪声的图像

     

                               图2 各种窗口尺寸均值滤波处理后的图像

     

                                 图3 各种窗口尺寸中值滤波处理后的图像

            显然由结果图像可得,lena图像在加入了30%椒盐噪声情况下,用中值滤波比均值滤波更有效果。窗口越小,细节保留的更多,但是一部分椒盐噪声还没有滤除。当窗口尺寸大时,虽然把绝大多数的噪声都滤除了,但是图像细节丢失严重。

    Processed: 0.019, SQL: 9